I have installed both apache2 and nginx as web server.
I found that it is a strange thing that apache2 logo will be still displayed in the firefox when service apache2 stop
executed and nginx logo can't be displayed in the firefox when service nginx start
executed.
Whatever you stop apache2 or start nginx ,the apache2 debian default page always be display in my firefox.
The config file /etc/apache2/sites-available/000-default.conf of apache2 is as below:
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
The config file /etc/nginx/sites-available/default of nginx is as below:
server {
listen 8080;
server_name 127.0.0.1;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
In my os ,
ls /var/www/html
index.nginx-debian.html index.html
The index.html is a apache2 debian logo,everytime 127.0.0.1:8080 executed, index.html was called no matter apache2 or nginx ,apache2 debian logo was displayed.
Problem solved.
Really there's two questions here, so I'll try to answer them both:
1. Why do Apache and Nginx display the same webpage?
Take a close look at your configuration files. You will see that they both load the same content:
Apache is loading (document root): /var/www/html
Nginx is loading (root): /var/www/html;
This means both servers will show the same content, as they are loading the same file(s). You can change your "root" directory to be two different locations by editing your configuration files.
eg apache:
eg nginx:
You'd then need to make each directory and put a file in them:
And put content into each of these folders. It's also worth checking the permissions of each folder are appropriate for the web server to access them.
2. How do I check to see if Apache has stopped and Nginx has started
There's a simple way to check the status of each service. Assuming you're logged in as root:
You can also use the ps command to get the process list:
This effectively gets all running processes, and searches for any with the name apache.
You can then start nginx and check it's running:
(optionally another way to prove the process is running): ps aux | grep -i nginx
It's also possible to see which program is listening on which port:
This will tell you the local address, port, and process name of everything listening for connections on your computer. You should see in this list either nginx or apache running with port 8080 (based on your configuration files) exposed.
You are using the same base path for web files (
/var/www/html
) and that is why the same content is displayed when using nginx or apache.The easiest way to know who is responding to requests is to review the response headers:
curl -I 127.0.0.1
See what appears in front of
Server
.This can also be done through the
Network
orNetworking
tabs in the developer console of web browsers, look for the value of "Server" in the response headers.There can be a scenario where your apache service is stopped but even then what you are seeing is the /var/www/html directory as root and apache webpage. This is because of the directories in nginx - /etc/nginx/sites-enabled/ (consists of enabled virtual hosted servers) and /etc/nginx/sites-available/ (consists of available virtual hosted servers). One option is to delete/clean these directories with configuration files and other option is to just comment out the line in /etc/nginx/nginx.conf
Then check for the following:
Nginx Configuration Test
or
Restart Nginx Service
Status of Nginx Service