我们现在后台有一个HTTPS服务https://halo.wanna1314y.top:12345
,我现在想要通过http://wanna1314y.top:8090
去访问该服务。
如果只是单纯的反向代理的话,会出现SSL证书的问题,因为我们访问wanna1314y.top:8090
用的是HTTP协议,但是halo.wanna1314y.top:31889
是需要HTTPS的协议进行访问的。那么我们需要才能去实现这个功能?
注意:通过sudo vim /etc/nginx/sites-available/default
可以去编辑Nginx的配置文件。
第一种方案,我们通过Nginx的配置proxy_ssl_verify off;
配置Nginx对于代理请求不进行SSL的检验,但是存在有不安全的问题。
server {
listen 8090;
listen 3443 ssl;
ssl_certificate /root/ssl/wanna1314y.top_bundle.crt;
ssl_certificate_key /root/ssl/wanna1314y.top.key;
location / {
proxy_pass https://halo.wanna1314y.top:12345;
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 X-Forwarded-Proto $scheme;
proxy_ssl_verify off;
}
}
第二种方案,将HTTP的8090端口,重定向到3443端口,3443其实是我们真正的https://halo.wanna1314y.top:12345
服务,这样也可以实现我们想要的功能,8090可以通过HTTP端口进行访问。
server {
listen 8090;
server_name wanna1314y.top;
location / {
return 301 https://$host:3443$request_uri;
}
}
server {
listen 3443 ssl;
server_name wanna1314y.top;
ssl_certificate /root/ssl/wanna1314y.top_bundle.crt;
ssl_certificate_key /root/ssl/wanna1314y.top.key;
location / {
proxy_pass https://halo.wanna1314y.top:12345;
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 X-Forwarded-Proto $scheme;
}
}