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;
为何$前加\ ?