首先感谢🙏下大佬~
我基本是 Nginx 0 基础小白,就是为了自己做反代用,想用一个域名不同前缀来区分自己搭的各种应用。
配置上了 ssl 证书,现在基本能正常工作,但是有个问题是每次访问网址,都需要输全
https://111.domain.com:8888
搜了很多 http 重定向到 https 的,基本都是 listen 80 然后 return 或 rewrite URL 到 https 的 port 链接。
我想问的是,因为我端口转发只有一个 8888 ,没有根本没有开监听 http 的端口。我应该如何才能正确的只输入
http://111.domain.com:8888
就访问https://111.domain.com:8888
?
以下是一个示范:
### bark-server 反向代理
server {
listen 8888;
# Replace bark.app.dev with your real domain name.
server_name bark.my.com;
return 301 https://$host$request_uri;
}
server {
listen 8888 ssl http2;
server_name bark.my.com;
location / {
proxy_pass http://192.168.0.10:55002;
}
}
感谢🙏!!!
1
LinePro 2022-09-25 11:55:02 +08:00 2
error_page 497 =301 https://$host:$server_port$request_uri;
这一句加到 server 里 |
3
Microcharon 2022-09-25 18:13:19 +08:00 2
|
4
ysc3839 2022-09-25 19:16:04 +08:00 via Android 1
顺带一提,497 是 nginx 自己定义的非标准 http 状态码,当 http 请求发送到 https 端口上会触发这个错误,因此将这个错误设置为 301 跳转即可实现当 http 请求发送到 https 端口时跳转为 https 协议。
|
5
liuyinltemp 2022-09-26 09:22:59 +08:00
@GoodRui 是不是放在第二个 server ?
server { listen 8888 ssl http2; server_name bark.my.com; error_page 497 =301 https://$host:$server_port$request_uri; location / { proxy_pass http://192.168.0.10:55002; } } |
7
GoodRui OP @liuyinltemp 对,对我提的这种情况,第一个 server 没有用。意思就是只输域名的时候访问 http 的这个端口 nginx 正常是会返回一个错误,当遇到这个错误的时候重定向到 https ,域名和端口还是用之前输的。
|
8
GoodRui OP @Microcharon 感谢大佬,我们伸手党就喜欢这种东西😍
|