Nginx not running with no error message

Nginx

Nginx Problem Overview


I am trying to start my nginx server. When I type "$> /etc/init.d/nginx start", I have a message appearing "Starting nginx:", and then nothing happens. There is no error message, and when I check the status of nginx I see that it is not running.

Here is my /etc/nginx/nginx.conf file:

worker_processes  4;
daemon off;

error_log  /home/vincent/tmp/nginx.log;

pid        /home/vincent/tmp/nginx.pid;


events {
    worker_connections  1024;
}


http {
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /home/vincent/tmp/access.log  main;

sendfile        on;

keepalive_timeout  65;

include /etc/nginx/site-enabled/*;

}

And here is my /etc/nginx/sites-available/default file :

server {
  listen       80;
  server_name technical-test.neo9.lan; 

  access_log  /var/log/nginx/technical-test.neo9.lan.log main;

  set $home /home/vincent;

  location / {
    alias $home/neo9/web/app/;
    index  index.html;
  }

  location /api/ {
    rewrite  ^/api/(.*)$  /$1 break;
    proxy_pass http://localhost:1234;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

Nginx Solutions


Solution 1 - Nginx

First, always sudo nginx -t to verify your config files are good.

I ran into the same problem. The reason I had the issue was twofold. First, I had accidentally copied a log file into my site-enabled folder. I deleted the log file and made sure that all the files in sites-enabled were proper nginx site configs. I also noticed two of my virtual hosts were listening for the same domain. So I made sure that each of my virtual hosts had unique domain names.

sudo service nginx restart

Then it worked.

Solution 2 - Nginx

You should probably check for errors in /var/log/nginx/error.log.

In my case I did no add the port for ipv6. You should also do this (in case you are running nginx on a port other than 80): listen [::]:8000 default_server ipv6only=on;

Solution 3 - Nginx

In your /etc/nginx/nginx.conf file you have:

include /etc/nginx/site-enabled/*;

And probably the path you are using is:

/etc/nginx/sites-enabled/default

                                   

Notice the missing s in site.

Solution 4 - Nginx

One case you check that nginx hold on 80 number port in system by default , check if you have any server like as apache or anything exist on system that block 80 number port thats the problem occurred.

1 .You change port number on nginx by this way,

> sudo vim /etc/nginx/sites-available/default

Change 80 to 81 or anything,

  1. Check everything is ok by ,

> sudo nginx -t

  1. Restart server

> sudo service nginx start

  1. Check the status of nginx:

> sudo service nginx status

Hope that will work

Solution 5 - Nginx

Check the daemon option in nginx.conf file. It has to be ON. Or you can simply rip out this line from config file. This option is fully described here http://nginx.org/en/docs/ngx_core_module.html#daemon

Solution 6 - Nginx

1. Check for your configuration files by running the aforementioned command: sudo nginx -t.

2. Check for port conflicts. For instance, if apache2 (ps waux | grep apache2) or any other service is using the same ports configured for nginx (say port 80) the service will not start and will fail silently (err... the cousin of my friend had this problem...)

Solution 7 - Nginx

If you have apache2 and it's running on the same port[80] that you configed in nginx, you will get error even you get success message on ngingx -t. The correct way is that you have just one webserver, but if you can't do that, use this way:

First stop apache2:

sudo sytemctl stop apache2

Then restart nginx:

sudo service nginx restart

Check the status of apache2 and nginx:

sudo systemctl status apache2

sudo systemctl status nginx

Solution 8 - Nginx

I had the exact same problem with my instance. My problem was that I forgot to allow port 80 access to the server. Maybe that's your issue as well?

Check with your WHM and make sure that port is open for the IP address of your site,

Solution 9 - Nginx

For what it's worth: I just had the same problem, after editing the nginx.conf file. I tried and tried restarting it by commanding sudo nginx restart and various other commands. None of them produced any output. Commanding sudo nginx -t to check the configuration file gave the output sudo: nginx: command not found, which was puzzling. I was starting to think there were problems with the path.

Finally, I logged in as root (sudo su) and commanded sudo nginx restart. Now, the command displayed an error message concerning the configuration file. After fixing that, it restarted successfully.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser2618928View Question on Stackoverflow
Solution 1 - NginxbadmadradView Answer on Stackoverflow
Solution 2 - NginxArvind BhardwajView Answer on Stackoverflow
Solution 3 - NginxDanielBlancoView Answer on Stackoverflow
Solution 4 - NginxZahidur RahmanView Answer on Stackoverflow
Solution 5 - NginxzloboidView Answer on Stackoverflow
Solution 6 - NginxgtamorimView Answer on Stackoverflow
Solution 7 - NginxRadmehr aghdamView Answer on Stackoverflow
Solution 8 - NginxKoushaView Answer on Stackoverflow
Solution 9 - NginxTeemu LeistiView Answer on Stackoverflow