标签归档:ssh

使用nginx proxy_pass 配合SSH隧道实现内网80端口映射

 

微信公众号对接服务器必须为80端口,给开发时本机实时调试造成很多麻烦。

如何进行微信公众平台开发测试?下面介绍几种常见方法

1.远程调试
将代码发布到服务器上进行测试,可以使用git或svn在提交代码后,自动部署到开发测试服务器上。效率低。

2.在本地路由器上做端口映射,直接将80端口映射到开发电脑中。如果有条件的,这种方式比较方便,但网络提供商一般屏蔽80端口,如果是ADSL,ip地址不固定,给实际操作,带来很多不确定因素。

3.使用神器ngrok,将本机80直接映射到公网,可惜服务器在国外,网络也比较慢还经常被墙。

4.使用nat123进行80网站映射,未找到mac版客户端,未做测试。

5.使用nginx proxy_pass 配合SSH隧道,完美!

nginx配置

server {
listen       80;
server_name 你的域名;

location / {
proxy_pass http://localhost:8080;

proxy_redirect off;

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 Cookie $http_cookie;

}
}

开发电脑中,执行一条命令即可

ssh -CNg -R 8080:127.0.0.1:80 -o TCPKeepAlive=yes -o ServerAliveInterval=10 -o ServerAliveCountMax=2 -o ExitOnForwardFailure=yes 用户名@服务器ip

 如果断开后连不上,提示端口已占用,在服务器上运行 
#lsof -i:8080  #查看端口被哪个进程占用8080端口,然后kill -9

 

ssh建立信任关系无密码登陆

本机
ssh-keygen -t rsa (后面3个直接回车即可)
cd ~/.ssh
ls
发现创建了2个文件 id_rsa(私钥)   id_rsa.pub (公钥)

将公钥复制到服务器上对应用户宿主目录/.ssh/authorized_keys中
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh