nginx配置proxy_pass,保持地址栏是server_name的地址

新手上路,请多包涵

在浏览器输入abc.com,我想要地址显示abc.com,但内容是百度的页面,地址不能跳转到baidu.com

自己尝试过这样配置,报502错误

server {

       listen 80;
       server_name www.abc.com;
       location / {
            proxy_pass http://www.baidu.com;
            proxy_set_header Host $host;
       }
    }
阅读 7.5k
2 个回答

这个问题很明显的 将proxy_set_header 去掉 , host 在http协议中经常作为权限处理的报头,如果请求地址和这个地址不相同,可能会被处理方拦截调
给一个好用的location 配置吧

    location / {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        proxy_set_header Cookie $http_cookie;
        proxy_set_header Host www.baidu.com;
        proxy_pass http://www.baidu.com;
    }
新手上路,请多包涵

感谢回答,我试了用这个location地址栏还是会跳转到baidu.com

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题