"proxy_pass" cannot have URI part in location given by regular expression

在windows中使用nginx时报错:

C:\TDDOWNLOAD\nginx-1.6.0\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 insid

e "limit_except" block in C:\TDDOWNLOAD\nginx-1.6.0\nginx-1.6.0/conf/nginx.conf:61

 

我的nginx配置如下:

Java代码  

  1. location ~* \.(jsp|do)$  
  2.       {  
  3.   
  4.             index index.jsp;  
  5.   
  6.             proxy_pass http://localhost:8080/shop_goods;  
  7.             proxy_set_header X-Real-IP $remote_addr;  
  8.         }  

 为什么会报错呢?

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

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

找到原因后,修改如下:

Java代码  

  1. location ~* \.(jsp|do)$  
  2.   {  
  3.   
  4.         index index.jsp;  
  5.   
  6.         proxy_pass http://localhost:8080;  
  7.         proxy_set_header X-Real-IP $remote_addr;  
  8.     }  

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

proxy_pass http://localhost:8080/;

参考:http://huangkunlun520.blog.51cto.com/2562772/901974

时间: 2024-09-17 16:53:19

"proxy_pass" cannot have URI part in location given by regular expression的相关文章

proxy_pass 与 正则表达式

我尝试使用if , location 处理部分URL, 然后放行到 proxy_pass 反复尝试都提示下面的错误   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"

46.7. FAQ

46.7.1. 405 Not Allowed? 46.7.1.1. 405 Not Allowed? 46.7.1.1. 405 Not Allowed? 静态页面POST会提示405 Not Allowed错误. # curl -d name=neo http://www.mydoamin.com/index.html <html> <head><title>405 Not Allowed</title></head> <body bg

1.7. FAQ

1.7.1. 405 Not Allowed? 1.7.1.1. 405 Not Allowed? 1.7.1.1. 405 Not Allowed? 静态页面POST会提示405 Not Allowed错误. # curl -d name=neo http://www.mydoamin.com/index.html <html> <head><title>405 Not Allowed</title></head> <body bgcol

rewrite规则写法及nginx配置location总结

rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用. 例如http://seanlook.com/a/we/index.php?id=1&u=str 只对/a/we/index.php重写. 语法: rewrite regex replacement [flag]; 如果相对域名或参数字符串起作用,可以使用全局变量匹配,也可以使用proxy_pass反向代理. 1.location正则写法 一个示例: location =

Nginx之location 匹配规则详解

关于一些对location认识的误区 1. location 的匹配顺序是"先匹配正则,再匹配普通". 矫正: location 的匹配顺序其实是"先匹配普通,再匹配正则".我这么说,大家一定会反驳我,因为按"先匹配普通,再匹配正则"解释不了大家平时习惯的按"先匹配正则,再匹配普通"的实践经验.这里我只能暂时解释下,造成这种误解的原因是:正则匹配会覆盖普通匹配(实际的规则,比这复杂,后面会详细解释).   2. locatio

nginx location语法使用介绍_nginx

nginx location介绍 Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令.Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的"/uri/",可以是字符串或正则表达式.但如果要使用正则表达式,则必须指定前缀. nginx location语法 基本语法:location [=|~|~*|^~] /uri/ { - } = 严格匹配.如果这个查询匹配,那么将停止搜索并立即处理此请求. ~ 为区分大小写匹配(可用

nginx beginner&#039;s guide

nginx的安装参考 http://blog.163.com/digoal@126/blog/static/163877040201461822210354/ 本文简单的讲一下nginx的使用, 配置文件的结构, 简单的代理服务器的配置, fastcgi的代理配置, 静态页面服务的配置等. 首先来看一下根据前面提供的安装方法, 编译好之后的nginx HOME目录结构. [root@db-172-16-3-150 ~]# cd /opt/nginx1.6.0/ [root@db-172-16-3

SSL证书卸载与SSI高级应用

SSL证书卸载与SSI高级应用 http://netkiller.github.io/journal/ssi.html Mr. Neo Chen (netkiller), 陈景峰(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地518131+86 13113668890+86 755 29812080<netkiller@msn.com> 版权 2014 http://netkiller.github.io 版权声明 转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明.

基于微信开发 专题

微信开放平台--扫码登陆微信开放平台https://open.weixin.qq.com 网站应用微信登录开发指南准备工作网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统.在进行微信OAuth2.在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程.https://open.weixin.qq.com/cgi-bin/sho