就普通的反向代理来讲
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相对Apache2就要麻烦一些了 比如,将url中以/wap/开头的请求转发到后台对应的某台server上 可以再Nginx里设置一个变量,来临时
格式很简单: proxy_pass URL; ... 示例如下: ...对于proxy_pass的配置有几种情况需要注意: 假设server_name为www.xxx.com 当请求http://www.xxx.com/aming/a.html的时候,以上示例分别访问的结果是 示例1
3. **Nginx配置CDN**:在Nginx配置文件nginx.conf中,需要创建或者修改服务器块,设置相应的反向代理和缓存策略。例如,可以配置一个专门用于CDN的服务器块,使用proxy_pass指令指定CDN的URL,同时结合proxy_cache...
在Web服务器配置中,特别是在使用Nginx作为反向代理服务器时,此指令变得非常关键,因为它能够帮助我们控制客户端得到的重定向地址,以确保返回给客户端的URL是符合我们安全和架构需求的。 在实际应用中,我们经常...
Nginx是一款高性能的Web服务器和反向代理服务器,以其高效的并发处理能力、低内存占用和丰富的模块库而著名。它的工作模式基于事件驱动,可以高效地处理大量的连接请求,特别适合用作负载均衡器或缓存服务器。 ngx_...
3. **配置Nginx**:在Nginx的配置文件(如`nginx.conf`)中,添加TCP代理的配置段。例如: ```nginx stream { server { listen 8080; proxy_pass backend_server:port; # 可选配置项 proxy_timeout 60s; # ...
尝试使用Nginx进行反向代理过程中出现如下错误: 代码如下: nginx: [emerg] “proxy_cache_path” directive is not allowed here in /etc/nginx/conf.d/default.conf:29 提示意思“proxy_cache_path指令不被允许”...
`proxy_pass`是Nginx的一个关键指令,它用于将客户端的请求转发到上游服务器,通常用于反向代理。例如,当Nginx接收到一个特定的URL请求时,它可以将这个请求传递给内部的Web服务器(如Apache、Tomcat或Node.js服务...
1. 在第一层 Nginx 反向代理节点(例如:21.67.38.47)上配置 Nginx,设置监听 80 端口,并将所有流入的 80 端口流量转发到第二层 Nginx 反向代理的域名(如 host.second.com:80)。 ``` upstream default_pools...
总结起来,这篇文章主要说明了Nginx反向代理模块中proxy_pass指令的工作机制和使用场景,并指出了当使用域名进行代理转发时,可能遇到因为Nginx缓存了域名解析结果而导致配置变更未能及时生效的问题。同时,还提供了...
要获取Nginx反向代理下的真实IP,主要涉及以下两个关键配置: 1. **$remote_addr 变量**:这是Nginx默认记录的客户端IP地址。在没有经过代理的情况下,$remote_addr会存储客户端的IP。但当Nginx作为反向代理时,它...
### Windows 下配置 Nginx 反向代理 Tomcat 在 Windows 环境下配置 Nginx 作为 Tomcat 的反向代理服务器是一项常见的任务,主要用于实现负载均衡、提高安全性及提升性能等目的。本文将从下载 Nginx 开始,详细介绍...
local.windons.com.conf该文件为具体反向代理配置文件, 文件名随便起, 内容: server { listen 80; root /; server_name local.windons.com; -----> 代理目标地址,...
两边通过同一个nginx进行反向代理,nginx配置大致如下, location /health/ { proxy_pass http://192.168.40.159:8081/health/; #无问题的配置 } location /health-dev/ { proxy_pass ...
前言日常不管是研发还是运维,都多少会使用Nginx服务,很多情况Nginx用于反向代理,那就离不开使用proxy_pass,有些同学会对 proxy_pass
Nginx 是一款高性能的 HTTP 和反向代理服务器,常用于处理静态资源,以减轻后端服务器的压力。为了进一步提高静态资源的访问效率,我们可以利用 Nginx 的缓存功能。下面详细介绍如何实现 Nginx 静态文件缓存的三个...