在nginx配置if 判断时有时一个小空格就有可能配置错误,造成服务启动失败,这里会出现这样的错误样式。
[root@default conf.d]# systemctl status nginx.service -l * nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset : disabled) Active: failed (Result: exit-code) since Tue 2016-04-05 05:17:54 EDT; 24s ago Docs: http://nginx.org/en/docs/ Process: 28225 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCC ESS) Process: 28151 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited , status=0/SUCCESS) Process: 28287 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code= exited, status=1/FAILURE) Main PID: 28152 (code=exited, status=0/SUCCESS) Apr 05 05:17:54 default systemd[1]: Starting nginx - high performance web server ... Apr 05 05:17:54 default nginx[28287]: nginx: [emerg] unknown directive "if(!-f" in /etc/nginx/conf.d/******.conf:188 Apr 05 05:17:54 default systemd[1]: nginx.service: control process exited, code= exited status=1 Apr 05 05:17:54 default systemd[1]: Failed to start nginx - high performance web server. Apr 05 05:17:54 default systemd[1]: Unit nginx.service entered failed state. Apr 05 05:17:54 default systemd[1]: nginx.service failed. Apr 05 05:17:54 default nginx[28287]: nginx: configuration file /etc/nginx/nginx .conf test failed
出现上面的错误时,请仔细检查配置文件在写if时多加空格。
示例代码为;
location = /jblv.com/ { default_type text/html; set $a 0; set $b 0; if ( $remote_addr != '' ){ //看这里看这里 set $a 1; } if ( $http_x_forwarded_for != '' ){ set $a 1; } if ( $a = 1 ){ set $b 1; } echo $b; }
注意上面的 看这里看这里 ,每个单词会有空格。
nginx 配置注意事项
在nginx配置if 判断时有时一个小空格就有可能配置错误,造成服务启动失败,这里会出现这样的错误样式。
[root@default conf.d]# systemctl status nginx.service -l * nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset : disabled) Active: failed (Result: exit-code) since Tue 2016-04-05 05:17:54 EDT; 24s ago Docs: http://nginx.org/en/docs/ Process: 28225 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCC ESS) Process: 28151 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited , status=0/SUCCESS) Process: 28287 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code= exited, status=1/FAILURE) Main PID: 28152 (code=exited, status=0/SUCCESS) Apr 05 05:17:54 default systemd[1]: Starting nginx - high performance web server ... Apr 05 05:17:54 default nginx[28287]: nginx: [emerg] unknown directive "if(!-f" in /etc/nginx/conf.d/******.conf:188 Apr 05 05:17:54 default systemd[1]: nginx.service: control process exited, code= exited status=1 Apr 05 05:17:54 default systemd[1]: Failed to start nginx - high performance web server. Apr 05 05:17:54 default systemd[1]: Unit nginx.service entered failed state. Apr 05 05:17:54 default systemd[1]: nginx.service failed. Apr 05 05:17:54 default nginx[28287]: nginx: configuration file /etc/nginx/nginx .conf test failed
出现上面的错误时,请仔细检查配置文件在写if时多加空格。
示例代码为;
location = /jblv.com/ { default_type text/html; set $a 0; set $b 0; if ( $remote_addr != '' ){ //看这里看这里 set $a 1; } if ( $http_x_forwarded_for != '' ){ set $a 1; } if ( $a = 1 ){ set $b 1; } echo $b; }
注意上面的 看这里看这里 ,每个单词会有空格。