JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

使用nginx的proxy_pass进行代理转发问题

wys521 2024-09-18 02:33:02 精选教程 55 ℃ 0 评论

A客户端只能http连接nginx所在服务器B,如果要实现连接其它网络站点C,需要通过nginx所在服务器B进行转发,即由nginx做代理服务。A客户端发起对服务器B的http连接,并在url中携带C站点地址,nginx从中解析并转发。

请求样例:

# B服务器地址www.test2.com,C服务器地址www.test.com
http://www.test2.com/?url=http://www.test.com

在nginx.conf文件中实现配置如下,

location / {
  if ($query_string ~* url=(\S+)) {
  	proxy_pass $1;
	}
}

运行后,A客户端返回502错误,查看nginx的error.log日志,显示“no resolver defined to resolve www.test.com",如果在proxy_pass中直接使用www.test.com,能正常返回。

在使用变量做为服务地址时,需要用resolver命令显示指定DNS服务器地址。因此在nginx.conf文件中的http模块中增加一行resolver命令。

resolver 8.8.8.8;

请求成功!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表