
在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;
    }
注意上面的 看这里看这里 ,每个单词会有空格。




