0
点赞
收藏
分享

微信扫一扫

nginx教程:proxy_set_header和proxy_pass、rewrite配置项解读


配置示例

upstream gateway {
    server 192.168.xx.xx;
}
server {
	location ^~/api {
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_buffering off;
		rewrite ^/api/(.*)$ /$1 break;
		proxy_pass http://gateway;
	}
}

解读

这段配置是一个Nginx服务器的配置,用于反向代理请求并将其转发到名为"gateway"的后端服务器。下面是对每一行配置的解释:

  1. location ^~/api {:指定请求的URL路径匹配规则。这里使用了^~/api表示以"/api"开头的URL路径。以这个规则匹配的请求将进行下面的配置处理。
  2. proxy_set_header Host $host;:设置转发请求时的请求头中的"Host"字段为客户端请求的主机。
  3. proxy_set_header X-Real-IP $remote_addr;:设置请求头中的"X-Real-IP"字段为客户端的真实IP地址。
  4. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;:设置请求头中的"X-Forwarded-For"字段,用于记录客户端的原始IP地址。
  5. proxy_buffering off;:禁用代理缓冲,确保代理服务器及时转发接收到的数据,而不是等待缓冲区满或超时。
  6. rewrite ^/api/(.*)$ /$1 break;:重写匹配到的URL路径,将"/api/“后面的部分提取出来,并将其作为新的请求URL路径。例如,如果请求的URL是”/api/example",则重写后的URL将变为"/example"。
  7. proxy_pass http://gateway;:指定请求转发的目标服务器地址为"http://gateway"。这里的"gateway"是后端服务器的名称或地址。

通过这段配置,当客户端发起以"/api"开头的请求时,Nginx服务器将转发该请求到后端的"gateway"服务器,并在转发过程中修改请求头的相关字段,同时对请求的URL进行重写。这样可以实现代理和转发请求的功能。


举报

相关推荐

0 条评论