Недавно перевез свои сайты на новый сервер с ubuntu 18. Все настроил как надо, радовался большей мощности и отсутствию ошибок в связи с малым объемом оперативной памяти.
Но однажды хостер проводил на сервере работы и отключал-запускал мой сервер. И о ужас мои сайты перестали работать, браузер не может найти сервер. Войти через ssh можно нормально все вроде на месте, но довольно быстро понял что Не запускается nginx. Я и так, и сяк, и сервер перезагружал, не запускается и все тут, что делать?
Терминал выдает что-то типа:
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details
Тут я понял надо глянуть в error.log.
Открываю файл /var/log/nginx/error.log а там:
2021/07/10 14:30:12 [emerg] 654#654: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/10 14:30:12 [emerg] 654#654: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/10 14:30:12 [emerg] 654#654: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/10 14:30:12 [emerg] 654#654: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/10 14:30:12 [emerg] 654#654: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/10 14:30:12 [emerg] 654#654: still could not bind()
То есть 0.0.0.0:80 Уже занят и nginx не может его занять соответственно не запускается. Кто мог занять этот порт? И почему раньше этого не происходило, по всей видимости это произошло после перезагрузки сервера. До этого я по ошибке добавил ссылку на конфигурацию одного из сайтов в директорию apache2. И теперь, в место этого сайта показывалась дефолтная страница апача. И тут я понял кто занял 0.0.0.0:80. Видимо при перезагрузке сервера апач автоматически запустился.
Решений у проблем несколько в зависимости от ваших потребностей, во-первых убрать апач из авто загрузки, или настроить конфиги серверов так чтобы они не конфликтовали по поводу IP-адрессов и портов.
Я выбрал третий способ просто удалить апач полностью потому-что я его не использую.
Как это сделать в терминал вводим следующие команды
sudo service apache2 stop
sudo apt-get purge apache2*
sudo apt-get autoremove
sudo rm -r -f /*/apache2*
и запускаем nginx
sudo systemctl start nginx
проверяем всели работает и перезагружаем сервер, и опять проверяем все ли работает.
Вывод: Проблем можно было бы избежать если бы я после настройки сервера, его сам перезагрузил и проверил все ли правильно работает!