`
vtrtbb
  • 浏览: 354221 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx反向代理proxy_pass的配置

 
阅读更多

就普通的反向代理来讲
Nginx的配置还是比较简单的,如:
location ~ /*
{
proxy_pass http://127.0.0.1:8008;
}
或者可以
location /
{
proxy_pass http://127.0.0.1:8008;
}

Apache2的反向代理的配置是:
ProxyPass /ysz/ http://localhost:8080/

然而,如果要配置一个相对复杂的反向代理
Nginx相对Apache2就要麻烦一些了
比如,将url中以/wap/开头的请求转发到后台对应的某台server上
可以再Nginx里设置一个变量,来临时保存/wap/后面的路径信息
location ^~ /wap/
{
if ($request_uri ~ /wap/(\d+)/(.+))
{
set $bucketid $1;
set $params $2;
}
proxy_pass http://mx$bucketid.test.com:6601/$params;
}
也可以首先rewrite一下,然后再代理:
location ^~ /wap/{
rewrite /wap/(\d+)/(.+) /$2?$args break;
proxy_pass http://mx$1.test.com:6601;
}
或者
location ~* /wap/(\d+)/(.+)
{
proxy_pass http://mx$1.test.com:6601/$2?$args;
}
注意上面最后的?$args,表明把原始url最后的get参数也给代理到后台
如果在proxy_pass中使用了变量(不管是主机名变量$1或后面的$2变量),则必须得加这段代码
但如果pass_proxy后没用任何变量,则不需要加,它默认会把所有的url都给代理到后台,如:
location ~* /wap/(\d+)/(.+)
{
proxy_pass http://mx.test.com:6601;
}
上面的proxy_pass配置,涉及到一个使用动态主机名的问题
参见http://www.tech126.com/?p=151

而Apache2相对就简单多了:
ProxyPassMatch ^/wap/(.*)$   http://192.168.132.147/$1

 

if ($host ~* www.(.*)){
            set $host_without_www $1;
            rewrite (.*)$ http://$host_without_www/www$1;
        }

分享到:
评论

相关推荐

    nginx 反向代理之 proxy_pass的实现

    格式很简单: proxy_pass URL; ... 示例如下: ...对于proxy_pass的配置有几种情况需要注意: 假设server_name为www.xxx.com 当请求http://www.xxx.com/aming/a.html的时候,以上示例分别访问的结果是 示例1

    Nginx服务器的反向代理proxy_pass配置方法讲解

    就普通的反向代理来讲 ...然而,如果要配置一个相对复杂的反向代理 Nginx相对Apache2就要麻烦一些了 比如,将url中以/wap/开头的请求转发到后台对应的某台server上 可以再Nginx里设置一个变量,来临时

    nginx配置、proxy_passfast 和 cgi_pass区别,反向代理,负载均衡、nginx+fastcgi+php的并发阻塞问题

    2、反向代理proxy_pass 2.1、反向代理 2.2、反向代理-使用upstream 2.3、反向代理-负载均衡-轮循模式 2.4、反向代理-负载均衡-权重模式 2.4、反向代理-负载均衡-ip_hash方式 3、网关代理fastcgi_pass(php+nginx配合...

    Nginx反向代理proxy_cache_path directive is not allowed错误解决方法

    尝试使用Nginx进行反向代理过程中出现如下错误: 代码如下: nginx: [emerg] “proxy_cache_path” directive is not allowed here in /etc/nginx/conf.d/default.conf:29 提示意思“proxy_cache_path指令不被允许”...

    nginx proxy_pass反向代理配置中url后加不加/的区别介绍

    nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。 而在日常的web网站部署中,经常会用到nginx的proxy_pass反向代理,有一个配置需要弄清楚:配置proxy_...

    nginx 反向代理软件

    local.windons.com.conf该文件为具体反向代理配置文件, 文件名随便起, 内容: server { listen 80; root /; server_name local.windons.com; -----> 代理目标地址,...

    nginx反向代理导致session失效的问题解决

    两边通过同一个nginx进行反向代理,nginx配置大致如下, location /health/ { proxy_pass http://192.168.40.159:8081/health/; #无问题的配置 } location /health-dev/ { proxy_pass ...

    yangpeng14#DevOps#详解Nginx-proxy_pass使用1

    前言日常不管是研发还是运维,都多少会使用Nginx服务,很多情况Nginx用于反向代理,那就离不开使用proxy_pass,有些同学会对 proxy_pass

    一分钟搞定 Nginx反向代理 nginx域名代理

    nginx -s reload // 重新加载配置文件 nginx -s quit // 退出nginx nginx-1.3.9.zip(这个版本) (1分钟搞定只是夸张说法啦,给你增加信心的啦,真正的操作起来,因人而异,没搞定的耐心再试试,自己xp系统亲测成功...

    Linux使用Nginx进行反向代理

    Linux使用Nginx进行反向代理,进行端口转发,可以实现负载均衡等

    详解Nginx反向代理WebSocket响应403的解决办法

    在Nginx反向代理一个带有WebSocket功能的Spring Web程序(源代码地址 )时,发现访问WebSocket接口时总是出现403响应,Nginx的配置参考的是 官方文档 : http { // ssl 相关配置 ... map $http_upgrade $...

    反向代理Nginx

    Nginx反向代理 server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; root E:\yuehou\git\web-h5\dist; location / { try_files $uri $uri/ /index....

    Nginx服务器作反向代理时的缓存配置要点解析

    这里给出示例,并详解。 http { [...] [...] proxy_cache_path /data/nginx/cache/one levels=1:2 keys_zone=one:10m max_size=10g; proxy_cache_key $host$request_uri; server { ... proxy_pass

    nginx代理配置完整包

    最全配置,下載即用,nginx作为web服务器一个重要的功能就是反向代理。 当然你也可以使用nginx配置正向...nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。

    nginx反向代理配置去除前缀

    使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法: 方法一:加”/” server {  ...

    使用Nginx代理上网的方法

    我一般都是使用 nginx 做反向代理 tomcat 和其他应用的,其实 nginx 也是支持正向代理的 所谓正向代理就是内网用户通过网关访问外部资源,就是电脑上网时浏览器设置下 http 代理地址访问互联网 而反向代理就是外部...

    nginx反向代理之多端口映射的实现

    代码解释 1.1 http:www.baidu.test.com默认是80,访问“/”利用反向代理,然后访问本地8083; 1.2 8083代表本地的前端工程访问地址,前端需要访问后台数据,”/”,继续代理到后台地址9803;... proxy_pass http

    Nginx DNS resolver配置实例

    nginx 通过 proxy_pass 和 upstream server 通信的时候需要手动指定 resolver。某些时候 DNS 解析失败就会出现这个错误: 代码如下: domain.com could not be resolved. 可以指定多个 DNS 并重置域名 TTL 延长 ...

    Nginx 代理转发阿里云OSS上传的实现代码

    Nginx配置 # HTTPS server # server { listen 443 ssl; server_name your.domain.name; ... location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $Host; proxy_set_header X-Real-I

    浅谈nginx反向代理中神奇的斜线

    在进行nginx反向代理配置的时候,location和proxy_pass中的斜线会造成各种困扰,有时候多一个或少一个斜线,就会造成完全不同的结果,所以特地将location和proxy_pass后有无斜线的情况进行了排列组合,进行了一次...

Global site tag (gtag.js) - Google Analytics