• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

nginx if 语法 配置注意事项

服务器 开心洋葱 1362次浏览 0个评论

nginx if 语法 配置注意事项

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;
    }

注意上面的 看这里看这里 ,每个单词会有空格。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明nginx if 语法 配置注意事项
喜欢 (0)

您必须 登录 才能发表评论!

加载中……