Nginx/HttpsOverSSH:修订间差异

来自OSSmedia
(创建页面,内容为“分类:WAN 本页讲述如何通过SSH代理HTTPS流量,适用于公网入口机代理内网服务器的情况。这种方法的ssl证书配置在内网服务器上,所以迁移入口机无压力。 == SSH反代 == * 在后端机上配置一个专门用于代理的用户,并设置ssh密钥 * 使用screen或者系统服务连接 === screen === 分为三个文件 * start.sh * 80.sh * 443.sh #!/bin/bash while true do ssh -NR 127.0.0.1:8443:127.0.0.1:…”)
 
无编辑摘要
 
第50行: 第50行:


== Nginx后端 ==
== Nginx后端 ==
正常配置即可,但是请在所有listen后面加上 proxy_protocol
* 请在所有listen后面加上 proxy_protocol
* nginx 配置文件中需要如下两行:
set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;

2024年6月6日 (四) 19:23的最新版本

本页讲述如何通过SSH代理HTTPS流量,适用于公网入口机代理内网服务器的情况。这种方法的ssl证书配置在内网服务器上,所以迁移入口机无压力。

SSH反代

  • 在后端机上配置一个专门用于代理的用户,并设置ssh密钥
  • 使用screen或者系统服务连接

screen

分为三个文件

  • start.sh
  • 80.sh
  • 443.sh
#!/bin/bash
while true
do
ssh -NR 127.0.0.1:8443:127.0.0.1:443 <remote server>
sleep 3
done
#!/bin/bash
while true
do
ssh -NR 127.0.0.1:8080:127.0.0.1:80 <remote server>
sleep 80
done
#!/bin/bash
screen -S 80 -dm ~/80.sh
screen -S 443 -dm ~/443.sh

Nginx反代(入口机)

修改入口机上的的nginx配置文件,添加stream块

stream {
    upstream ssl_backend {
        server 127.0.0.1:8443;
    }
    upstream http_backend{
        server 127.0.0.1:8080;
    }
    server {
        #ssl_preread on; 
        listen 443;
        proxy_pass ssl_backend;
        proxy_protocol on;
    }
    server {
        listen 80;
        proxy_pass http_backend;
        proxy_protocol on;
    }
}

Nginx后端

  • 请在所有listen后面加上 proxy_protocol
  • nginx 配置文件中需要如下两行:
set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;