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

是这样的,我现在已经通过配置证书,做了一个https的代理转发并且成功了了,相当于现在已经可以实现访问https://abc.abc.com:8888代理转发到服务http://127.0.0.1:8000/,我访问https://abc.abc.com:8888可以正常转发到服务器的http://127.0.0.1:8000服务。
但是现在我还想要实现这样,就是访问http://abc.abc.com代理转发到https://abc.abc.com:8888,然后最终目的是能访问到http://127.0.0.1:8000的服务。
请问这样可以实现吗,可以实现我访问http://abc.abc.com自动到https://abc.abc.com:8888然后它自动到http://127.0.0.1:8000的服务吗?

img


我自己这样配置了一个80转发但是实现不了。

引用 皆我百晓生 小程序回复内容作答:
是的,nginx可以通过代理转发实现将80端口的请求转发到指定的https端口。

要实现访问http://abc.abc.com代理转发到https://abc.abc.com:8888,然后再转发到http://127.0.0.1:8000的服务,你可以尝试下面的配置:

server {
    listen 80;
    server_name abc.abc.com;

    location / {
        proxy_set_header Host $host;
        proxy_pass https://abc.abc.com:8888;
        proxy_ssl_verify off;
    }
}

server {
    listen 8888 ssl;
    server_name abc.abc.com;

    ssl_certificate /path/to/ssl_certificate.crt;
    ssl_certificate_key /path/to/ssl_certificate.key;

    location / {
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8000;
    }
}

这个配置中,第一个server块监听80端口,将请求转发给https://abc.abc.com:8888。第二个server块监听8888端口,并根据配置的ssl_certificate和ssl_certificate_key设置SSL证书。在location中,将请求转发给http://127.0.0.1:8000。

你可以根据实际情况进行调整和更改配置,然后重新加载nginx配置以使其生效。

【以下回答由 GPT 生成】

我很乐意帮助你解决问题,请提供具体的问题描述,我会尽力给出相应的解决方案。


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