我想访问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 { ... return 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; 你之前不成功可能是证书问题 |