Nginx 如何将当前访问的地址转发到另一个地址?

现在有一个需求,在浏览器中输入
http://www.baidu.com:8888
通过Nginx帮忙转发到另一个地址
http://localhost/test.html

目前Nginx配置是这样的:

server {
    listen          8888;
    server_name     www.baidu.com;
         
    location / {
        proxy_pass http://localhost/test.html;
    }
}

可是没能成功,访问http://www.baidu.com:8888没有响应。请问应该怎么做才能让Nginx拦截请求并帮忙转发呢,运行环境在Windows下

求各位大佬指导指导,谢谢了~~

目前通过配置hosts可以进行转发了,还有一个疑问就是
nginx启动后不能像fiddle一样对所有网络请求进行拦截吗,目前还需要进行hosts配置

阅读 4.7k
1 个回答

你这个问题根本原因是 http://www.baidu.com:8888 的请求并没有发送到你的 nginx 上面。

因为是域名,www.baidu.com 会被解析为公网的 IP,然后请求该 IP 的 8888 端口。

可想而知,这个 IP 是百度公司的云服务器上面的,8888 端口根本就没开,自然访问不了。


nginx启动后不能像fiddle一样对所有网络请求进行拦截吗

肯定不行,nginx 和 fiddle 根本就不是一样的工作逻辑,nginx 只是监听某些网卡的某些端口,发给他什么数据他才能接收什么数据。

fiddle 是监控所有的网卡出去的流量。

两者的目标和作用根本就是天差地别。

推荐问题