Nginx 服务器的反向代理服务是其最常用的重要功能,由反向代理服务也可以衍生出很多与此相关的 Nginx 服务器重要功能,比如后面会介绍的负载均衡。
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。 (推荐学习:nginx教程)
nginx反向代理配置:
location ~ \/someuri { access_log /var/log/nginx/uploads.log; proxy_pass_header Server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 300; proxy_pass $scheme://proxy_location$uri; recursive_error_pages on; }
如上面代码所示,可以进行反向代理,但这样会有问题:
如果在url里面加了请求参数,用$scheme://proxy_location$uri转发后是不带这请求参数的,所以不能使用$uri这个变量,如需要继续携带请求参数,则需要使用$request_uri,即proxy_pass $scheme://proxy_location$request_uri;
以上是nginx反向代理怎么传递参数的详细内容。更多信息请关注PHP中文网其他相关文章!