阿里云主机

万维景盛

万维景盛官网
nginx "proxy_pass" cannot have URI part in location given by regular expression

有的阿里云服务器客户在配置nginx的时候,遇到nginx "proxy_pass" cannot have URI part in location given by regular expression的报错,他的意思是在给nginx配置正则表达式的时候proxy_pass是不可以设置uri的,万维景盛工程师为您分享解决方法。

在windows中使用nginx时报错:

\nginx-1.6.0>nginx.exe -s reload

nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in \nginx-1.6.0\nginx-1.6.0/conf/nginx.conf:61

nginx配置如下:

location ~* \.(php|py)$  

      {  

        index index.php;  

       proxy_pass http://localhost:8080/miniprogram;  

        proxy_set_header X-Real-IP $remote_addr;  

 }  

 为什么会报错呢?

因为location 使用了正则表达式(\.(php|py)$),而且proxy_pass中包含了URI part(miniprogram).错误提示的意思是:

如果location包含了正则表达式,则 "proxy_pass"不能包含URI part(miniprogram).

找到原因后,修改如下:

location ~* \.(php|py)$  

 {  

    index index.php;    

    proxy_pass http://localhost:8080;  

    proxy_set_header X-Real-IP $remote_addr;  

 }  

 注意:proxy_pass的值后面不要有斜杠,下面的是错误的:

proxy_pass http://localhost:8080/;

例如:

/*********************************************
此段为注释:
----------------------------------------------
        location / {                                       //这里的location是要换成自己经过精确匹配的location,比如要缓存图片要写成 "location ~*\.(gif|jpg|jepg|png|bmp)${"
            expires 3d;                                    //所有链接,浏览器缓存过期时间为3天
            proxy_set_header Accept-Encoding '';
            root /home/bt/nginx;                         //此目录为服务器的根目录,下面的if语句就是判断此目录下是否有响应的文件
            proxy_store on;                                //表示开启缓存
            proxy_store_access user:rw group:rw all:rw;    //表示用户读写权限,如果在error中报路径不允许访问的话就用"chomod -R a+rw"将下面配置的路径改为相应的权限.
            proxy_temp_path /home/bt/nginx;              //此处为文件的缓存路径,这个路径是和url中的文件路径一致的,url中?后面的部分不作为路径或文件名参考
            if ( !-e $request_filename)  {
                 proxy_pass http://192.168.0.1;            //此处为要被代理的服务器的地址
            }
        }
**********************************************
如果您需要采购阿里云服务器,欢迎联系万维景盛客服,免费提供环境镜像,畅享折上折优惠,低至5折。微信/qq 442956988


< 购物车 > 会员 客服 充值 工单
Top

客服热线

010-80253326

18610695105

客服QQ

请拨总机 010-80253326

咨询售后问题建议 提交工单