Я получил свой /etc/init.d/nginx
сценарий инициализации отсюда: https://www.nginx.com/resources/wiki/start/topics/examples / redhatnginxinit /
в моем /etc/nginx/nginx.conf
, там include /etc/nginx/conf.d/*.conf;
, который включает файлы конфигурации моего веб-сайта.
однако после /etc/init.d/nginx start
кажется, что nginx не загружает эти файлы конфигурации и возвращает 502 при доступе .
с другой стороны, запуск nginx с помощью команды nginx
работает нормально.
что здесь не так?
Похоже, ваша проблема связана с неправильным файлом инициализации. Обычно nginx
устанавливает его из RPM и никаких дополнительных файлов не требуется. В вашей ссылке указано, что это файл инициализации, протестированный на CentOS 5, но вы используете CentOS 6, где он не тестировался. Попробуйте удалить этот файл инициализации и переустановить nginx из RPM или репозитория, он должен установить один хороший файл инициализации.
Если вы не хотите этого делать, вы можете попытаться скопировать файл инициализации из туда . Это копия файла инициализации из установленного на CentOS 6 nginx.
Вы используете сценарии sysvinit, но Red Hat (при условии, что вы используете Red Hat / CentOS из ссылки) перешла на systemd.
Create
/lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
После того, как об этом позаботятся,
systemctl enable nginx.service && systemctl start nginx.service
Тогда не беспокойтесь об этом, потому что теперь он запускается при загрузке. Но убедитесь, что вы убили экземпляр nginx, который запускали вручную раньше.
Поскольку CentOS 6 не предоставляет собственных пакетов nginx, важно понимать, откуда взялся ваш пакет. Вывод nginx -V
даст важные детали.
Я предполагаю, что ошибки HTTP 502 указывают на неспособность процесса nginx взаимодействовать с сервером приложений. Nginx error_log будет содержать подробную информацию об этом условии. Выполнение setenforce 0
перед перезапуском службы nginx поможет понять, связана ли проблема с механизмом SELinux.