技术解析

nginx 怎么把网站反代到目录?
0
2021-05-25 14:35:16
idczone

想法是在目录下反代谷歌 一开始 location /{}这样弄没问题,但是我想把 location /{} 这种留给我的 blog 用,想在 location /google{}反代,但是问题来了,反代谷歌主页没问题,但是搜索 404. 所以是哪有问题呢?

这是我的配置。。话说 v2 排版有点奇怪 T_T

upstream yoyo { server 216.58.219.225:443 max_fails=3;

  server 216.58.219.226:443 max_fails=3;
  
  server 216.58.219.227:443 max_fails=3;
  
  server 216.58.219.228:443 max_fails=3;
  
}

server {

   listen      443 ssl;
    
#listen       [::]:443 ss抗投诉服务器l;

    server_name  lalalaala;

ssl on;
    ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_protocols   TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
     ssl_prefer_server_ciphers  on;
     ssl_session_cache       shared:SSL:10m;
     ssl_session_timeout     5m;

location ^~/google{
        proxy_redirect https://www.google.com/ /;
        proxy_pass https://yoyo/;
       proxy_set_header Host www.google.com;
       proxy_set_header User-Agent $http_user_agent;
       proxy_set_header Referer http://www.google.com;
        proxy_set_header Accept-Encoding "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }

  }

}


location ^~/google
改为
location ^~/google/
试试?然后 rewrite /google 到 /google/

是这样? 并不行的说
location ^~/google{
rewrite ^/ https://$server_name/google/;
}
location ^~/google/{
proxy_redirect https://www.google.com/ /;
proxy_pass https://yoyo/;
proxy_set_header Host www.google.com;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Referer http://www.google.com;
proxy_set_header Accept-Encoding "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}

proxy_store

反代谷歌不用缓存吧= =

location /google/ {
}
个人用这种写法。

能贴下你的配置吗? 我现在是反代后谷歌主页能打开,但是搜索过去就 404,我感觉应该是 proxy_redirect 的问题, 搜了语法规则还是不太懂 T_T

我觉得和这句有关:
proxy_redirect https://www.google.com.hk/ /google/;
没替换?看一下请求看看。

最好是映射到端口,有些网页里面的链接写死从根目录“/”开始的就会出错了

嗯。明天试试,我好像之前试过这样写没有用(但好像最后没有加 /这个在后面)

好主意!之前没想到

应该是要加 / 否则成文件了吧。。

后面加了‘/’还是不行,请求是在 nginx 的 LOG 里看吗? 我看了下都是 get “ xxx ”这种

我觉得如果是 404 的话看 log 并没啥用。。一个个试试看,顺便找找网上的配置。

我也觉得,网上都是用 location /{}这样的,汗,干脆注册多个域名好了

二级域名。 g.xxx.com 吧。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服