nginx可以通过代理转发80转发到指定https端口吗

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,并自动跳转到该地址。

希望以上解决方案能对你有所帮助!如果还有其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^