技术解析

nginx 反向代理,部分链接依旧是原域名,求解
0
2021-05-26 21:34:46
idczone
https://dl.isway.cn
需要反代的网站是https://sketchfab.com

所有的模型链接都是原域名,有没有解决办法?
代码如下:
server {
listen 443;
server_name dl.isway.cn;

ssl on;
ssl_certificate /root/nginx/ssl.crt;
ssl_certificate_key /root/nginx/ssl.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

location / {
proxy_pass https://sketchfab.com/;
proxy_redirect off ;
proxy_cookie_domain sketchfab.com dl.isway.cn;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header REMOTE-HOST \$remote_国外服务器addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}

另外
proxy_set_header Host \$host;
加上去后,就访问不了-Bad Request,何解?


谢谢!
subs_filter 'sketchfab.com/models/' 'dl.isway.cn/models/';
subs_filter挺好用的: https://code.google.com/p/substitutions4nginx/


proxy_set_header Host \$host; 意思是 proxy_set_header Host sketchfab.com;

那为啥我这儿加上proxy_set_header Host \$host; 后就挂了?

如果只有单个域名用 sub_filter 就好了,免得麻烦....

你加 proxy_set_header Host sketchfab.com; 看看挂不挂……

替换不生效....

恩,这下不挂了。
但是sub_filter替换不生效是神马情况?

不生效是因为你没有安装官方自带的 http_sub_module
编译的时候加上 --with-http_sub_module


It won't run wihout what you say.


Try to disable GZIP if it is enabled.
Remember to use nignx -t to check your conf file instead of restarting nginx directly.

shu ru fa gua le ,zhe shi shen me qing kuang. WTF...

proxy_set_header Accept-Encoding "";
你可能还需要替换css和js里的网址,还有外部链接,二级域名
proxy_set_header 此处的host应该是被反代的网站,proxy_pass 后跟的是IP的话才需要手动指定,跟的是域名的话没必要指定。

关掉gzip也不行

不是关掉自己的gzip,而是避免来源gzip
proxy_set_header Accept-Encoding "";

proxy_set_header Host \$host;
为何$前加\ ?

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