HA

使用nginx和ssh tunneling实现通过公网ip访问本地计算机

假设本地计算机上,已开发的应用可通过http://localhost:19080来访问

在有公网ip的服务器上添加下列配置后部署nginx(监听19001端口,收到请求后发送到19000端口)

server {
    listen       19001;
    location / {
        proxy_pass http://localhost:19000;
    }
}

在本地计算机上设置SSH tunneling

与远程服务器的19000端口建立连接,本地在19080端口响应

ssh -f -N -T -R 19000:localhost:19080 -p '22' 'username@remote'
# 直连不行的话(thanks to GFW),可设置代理
ssh -f -N -T -R 19000:localhost:19080 -p '22' 'username@remote' -o "ProxyCommand=nc -X connect -x PROXYHOST:PROXYPORT %h %p"

配置完成后即可访问

http://远程服务器ip:19001/

reference