nginx可以通过代理转发80转发到指定https端口吗?
是这样的,我现在已经通过nginx配置好了一个https端口,可以正常访问,例如是这样的:https://wrgb.ddf-resin.com:8888/,现在我想再通过nginx设置达到这样的效果,那就是访问http://wrgb.ddf-resin.com会自动跳转到https://wrgb.ddf-resin.com:8888/,请问应该怎样配置呢?是配置代理转发还是网址重写呢?麻烦给个具体配置,谢谢。
在nigix.conf
里增加一个location
, 以下是监听8087
端口,访问8087
端口的http(s)://www.xx.com/
时转发到8081
端口。
server {
client_max_body_size 100M;
listen 8087;
server_name 127.0.0.1;
location / {
proxy_pass http://192.168.0.113:8081;
# proxy_redirect off;
proxy_redirect http:// https://;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Authorization $http_authorization;
}
}
【以下回答由 GPT 生成】
要实现将80端口转发到指定的https端口,可以使用nginx的代理转发功能。
首先,需要在nginx的配置文件中添加一个server块,监听80端口的访问。
server {
listen 80;
server_name wrgb.ddf-resin.com;
location / {
proxy_pass https://wrgb.ddf-resin.com:8888;
}
}
这段配置中,listen指令指定监听的端口为80,server_name指定域名为wrgb.ddf-resin.com。location块中的proxy_pass指令将所有的请求转发到https://wrgb.ddf-resin.com:8888。
然后,需要在nginx的配置文件中添加一个server块,监听8888端口的访问。假设已经配置好了可以正常访问的https端口,配置如下:
server {
listen 8888 ssl;
server_name wrgb.ddf-resin.com;
ssl_certificate /path/to/ssl_certificate;
ssl_certificate_key /path/to/ssl_certificate_key;
location / {
# your application configuration
}
}
这段配置中,listen指令指定监听的端口为8888,并开启ssl。server_name指定域名为wrgb.ddf-resin.com。ssl_certificate和ssl_certificate_key指令指定SSL证书的路径。location块中可以添加你的应用程序的其他配置。
最后,重新加载nginx的配置文件,使配置生效:
sudo nginx -s reload
之后,当你访问http://wrgb.ddf-resin.com时,nginx会将请求代理转发到https://wrgb.ddf-resin.com:8888,并自动跳转到该地址。
希望以上解决方案能对你有所帮助!如果还有其他问题,请随时提问。