Назад | Перейти на главную страницу

Nginx не запущен. Нет ошибок

Если я бегу:

$ sudo service nginx status
* nginx is not running

Потом бегу:

$ sudo service nginx start
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
...
nginx: [emerg] still could not bind()

Вот и убиваю:

sudo fuser -k 80/tcp

Итак, я пытаюсь снова запустить Nginx:

$ sudo service nginx start
Starting nginx: nginx.

Должен быть запущен, верно ?:

$ sudo service nginx status
* nginx is not running

Я попытался:

$ ps aux | grep nginx
root      1316  0.0  0.2  64988  1236 ?        Ss   14:37   0:00 nginx: master process /usr/sbin/nginx
nobody    1317  0.0  0.3  65408  1908 ?        S    14:37   0:00 nginx: worker process
myusername     1436  0.0  0.1   9388   876 pts/2    S+   14:40   0:00 grep nginx

При посещении ip сайта. Я получаю сообщение 404 с nginx/1.2.1 снизу. Мне кажется, что он действительно работает. И я блокирую IP-адреса в nginx.conf, и эти IP-адреса в настоящее время блокируются, я тестировал. Поэтому я не понимаю, работает ли Nginx или нет, и как справиться с этим зверьком.
Моя конечная цель - запустить и Gunicorn. Странно то, что вчера все это работало. Gunicorn и Nginx имеют статусы working.

Возможно, у вас есть apache, работающий на том же порту, и nginx не может привязать адрес, потому что он уже используется.
Чтобы изменить порт для nginx, посмотрите этот ответ на stackoverflow [1]https://stackoverflow.com/questions/10829402/how-to-start-nginx-via-different-portother-than-80

Вот пример на моей болонке

marco@BeastFMM:~$ sudo service nginx start
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
nginx.
marco@BeastFMM:~$ sudo /etc/init.d/apache2 stop
sudo: unable to resolve host BeastFMM
 * Stopping web server apache2                                                                                                                                   apache2: apr_sockaddr_info_get() failed for BeastFMM
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 ... waiting                                                                                                                                              [ OK ]
marco@BeastFMM:~$ sudo service nginx start
Starting nginx: nginx.
marco@BeastFMM:~$ ps aux | grep nginx
root      7986  0.0  0.0  78976  1288 ?        Ss   17:07   0:00 nginx: master process /usr/sbin/nginx
www-data  7987  0.0  0.0  79316  1708 ?        S    17:07   0:00 nginx: worker process
www-data  7988  0.0  0.0  79316  1708 ?        S    17:07   0:00 nginx: worker process
www-data  7989  0.0  0.0  79316  1708 ?        S    17:07   0:00 nginx: worker process
www-data  7990  0.0  0.0  79316  1708 ?        S    17:07   0:00 nginx: worker process

404 = страница не найдена.

Это означает, что nginx обслуживает запрос (при этом у вас больше ничего не работает на порту 80). Судя по звукам, сервер запустился нормально. Просто создайте файл index.htm в корне каталога nginx со словом «hello world», и вы что-нибудь увидите.

Вы изменили расположение файла pid? Обычно, когда вы запускаете службу, она проверяет, запущена она уже или нет, ничего не делает, если работает, и запускает ее в противном случае. Так что тех ошибок привязки, которые вы получаете, быть не должно.

Расположение по умолчанию для pid-файла nginx с vinit - /var/run/nginx.pid.