我已经更新了我的服务器之一从debian 6到debian 8.以前一切工作正常。 现在,NGINX无法从正确的configuration开始。
我将/etc/default/nginx为如下所示:
DAEMON_OPTS="-c /etc/nginx/my.nginx.file.conf" DAEMON_ARGS=$DAEMON_OPTS
这应该使NGINX开始使用在/etc/nginx/my.nginx.file.conf设置的自定义configuration文件而不是标准的/etc/nginx/nginx.conf 。
我检查了init.d脚本,它有:
# Include nginx defaults if available if [ -r /etc/default/nginx ]; then . /etc/default/nginx fi
但似乎并不适用。 如果我删除文件/etc/nginx/nginx.conf并保留我的configuration文件,我会得到以下内容:
# /etc/init.d/nginx start [....] Starting nginx (via systemctl): nginx.serviceJob for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details. failed! # systemctl status nginx.service ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled) Active: failed (Result: exit-code) since Fri 2016-04-22 14:35:14 UTC; 6s ago Process: 12772 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS) Process: 3773 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS) Process: 12738 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 5193 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE) Main PID: 12740 (code=exited, status=0/SUCCESS) Apr 22 14:35:14 xxx nginx[5193]: nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory) Apr 22 14:35:14 xxx nginx[5193]: nginx: configuration file /etc/nginx/nginx.conf test failed Apr 22 14:35:14 xxx systemd[1]: nginx.service: control process exited, code=exited status=1 Apr 22 14:35:14 xxx systemd[1]: Failed to start A high performance web server and a reverse proxy server. Apr 22 14:35:14 xxx systemd[1]: Unit nginx.service entered failed state.
如果我保留文件/etc/nginx/nginx.conf将简单地开始使用该文件,而不是我自己的,即/etc/nginx/my.nginx.file.conf 。 我究竟做错了什么?
我试图避免编辑init.d脚本,如果可能的话。 我知道我可以在那里设置DAEMON_OPTS。
你做错了什么是创build你自己的/etc/nginx/my.nginx.file.conf而不是编辑/etc/nginx/nginx.conf 。 将文件放回其标准位置。
Debian 8已经(最后)移动到systemd,旧的init脚本和/etc/default/nginx不再使用了。 当然,即使是在使用,这也是一个糟糕的主意,但现在特别是一个坏主意。