Проблема:
При запуске nginx с конфигурациями выдаёт ошибки:
nginx[23283]: nginx: [emerg] bind() to 0.0.0.0:433 failed (98: Address already in use)
nginx[23283]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Корень проблемы:
Прячу конфигурации, nginx взлетает.
Описание системы:
Стартует nginx с файла /etc/nginx/nginx.conf. Тот в свою очередь инклюдит файлы с /etc/nginx/conf.d/*.conf. Там сейчас лежат следующие конфиги:
test.conf:
server {
server_name page.demo.lab;
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 433 ssl;
server_name page.demo.lab;
# Logs
access_log /var/log/nginx/page.demo.lab.log;
error_log /var/log/nginx/page.demo.lab.log;
# SSL
ssl_certificate path/to/cert;
ssl_certificate_key path/to/key;
location / {
proxy_pass http://webpage:8090/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
api-test.conf:
server {
server_name api-page.demo.lab;
listen 80;
return 301 https://$host$request_uri;
}
server {
server_name api-page.demo.lab;
listen 443 ssl;
# Logs
access_log /var/log/nginx/api-page.demo.lab.log;
error_log /var/log/nginx/api-page.demo.lab.log;
# SSL
ssl_certificate path/to/cert;
ssl_certificate_key path/to/key;
location / {
proxy_pass http://webpage:8091/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Поиски пути решения:
Сделал netstat | grep http
. Ничего (кроме того, что https использует контейнер, но там вообще с обратной стороны а контейнер на другом порту принимает. К делу думаю никак не относится).
Сделал telnet localhost 80; telnet localhost 443
. Connection refused.
Сделал ps -eF | grep nginx
. И вот тут удивился:
root 25597 25576 0 1500 2724 0 21:22 ? 00:00:00 nginx: master process nginx -g daemon off;
101 25640 25597 0 1614 1680 2 21:22 ? 00:00:00 nginx: worker process
101 25641 25597 0 1614 1448 2 21:22 ? 00:00:00 nginx: worker process
101 25642 25597 0 1614 1448 3 21:22 ? 00:00:00 nginx: worker process
101 25643 25597 0 1614 1448 1 21:22 ? 00:00:00 nginx: worker process
Закилял процессы, сделал снова, тот же вывод (но с другими PID). Перезапускаю nginx – получаю ту же ошибку
Но мне кажется я не в ту сторону копаю потому, что когда я убираю конфиги, всё отлично работает…
Прошу подскажите кто-нибудь, как решить проблему…
P.S Когда я убираю конфиги, делаю nginx start
, ставлю конфиги обратно, делаю nginx -s reload и он прекрасно цепляет конфиги и работает…