
我想访问https://photo.abc.com代理到192.168.2.6/photo/上面,我在location加上/photo/可以通过https://photo.abc.com/photo/访问到,请教如何隐藏或 301 跳转,直接通过https://photo.abc.com访问呢? 谢谢! 这是代码
server { listen 443 ssl http2; server_name photo.abc.com; ssl_certificate /etc/default/cert.pem; ssl_certificate_key /etc/default/privkey.pem; location /photo/ { proxy_set_header Host $host:$proxy_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://192.168.2.6/photo; } } 1 zh826256645 2019-01-08 10:48:58 +08:00 直接 location / {...;proxy_pass https://192.168.2.6/photo;} |
2 toyst OP @zh826256645 如果像您那样写,会报 400 Bad Request |
3 zh826256645 2019-01-08 11:02:23 +08:00 https://192.168.2.6/photo 改为 https://192.168.2.6/photo/ 呢? 我这边是没有问题的 |
4 toyst OP @zh826256645 我后端提示「无法加载数据」,只有像我题目里那样加上 /photo/访问就正常了,能用 301 处理一下吗?我对 nginx 不太熟悉,谢谢 |
5 bnlt 2019-01-08 11:16:00 +08:00 301 跳转 server { ... retur 301 https://photo.abc.com$request_uri } 代理的话 @zh826256645 说的应该是对的,有可能是你们后端软件恰巧不支持被反代。 |
6 zh826256645 2019-01-08 11:16:55 +08:00 不太清楚 https://192.168.2.6/photo/ 上是什么东西 如果只是单纯的静态文件,你可以通过设置 nginx 指定文件夹来进行反向代理 location / { alias 静态文件目录; } 如果是动态路由,那我感觉使用 301 状态码可以会跟你预期的效果不符 |
7 bnlt 2019-01-08 11:18:02 +08:00 但是 301 跳不进内网 |
8 zh826256645 2019-01-08 11:21:16 +08:00 还是搞清楚为啥这样不能反代,首先你得弄清理代理成功了吗?如果成功了,在分析下一步原因吧 server { listen 443 ssl http2; server_name photo.abc.com; ssl_certificate /etc/default/cert.pem; ssl_certificate_key /etc/default/privkey.pem; location / { proxy_set_header Host $host:$proxy_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://192.168.2.6/photo/; } } |
9 ldehai 2019-01-08 11:35:30 +08:00 ``` server { server_name photo.abc.com; root /var/www/html/photo; index index.html index.htm; location / { try_files $uri $uri/ /index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } server { if ($host = photo.abc.com) { return 301 https://$host$request_uri; } listen 80; server_name photo.abc.com; return 404; } |
10 digimoon 2019-01-08 11:51:52 +08:00 我怀疑 192.168.2.6/photo/这个本身会有跳转或者非相对连接,应该先正常访问一下看看会连到什么地方 举个例子,192.168.2.6/photo/是入口,但是里面有些数据是要连到 192.168.2.6/或者 192.168.2.6/abc/ |
11 SakuraKuma 2019-01-08 11:53:24 +08:00 rewrite |
12 lazyfighter 2019-01-08 13:19:36 +08:00 photo 后面加 / |
13 royzxq 2019-01-08 13:28:24 +08:00 location /photo { proxy_pass https://xxx.xx.xxx/photo } 或者 location /photo/ { proxy_pass https://xx/photo/ } |
14 ucun 2019-01-08 13:44:00 +08:00 改一个明显的错误 把 proxy_pass https://192.168.2.6/photo; 改成 proxy_pass http://192.168.2.6/photo; 你之前不成功可能是证书问题 |