一般我们进行内网穿透的时候用的都不是80和443端口访问,因为通常服务器上都有类似Nginx服务占用这两个端口。所以我们需要使用其他端口进行访问,但是带着端口访问看上去让我很不舒服,所以这里记录一下如何使用Nginx反代理ngrok,实现使用80和443端口正常访问ngrok内网穿透的网站。
本文需要你已经进行了内网穿透,关于如何使用ngrok进行内网穿透,请参阅 使用ngrok进行内网穿透
既然80和443端口被服务器Nginx占用,那就要从Nginx身上下手了,配置一下反代理。
假设
ngrok内网穿透使用的域名是ngrok.zkk.me
内网电脑上的网站使用的子域名为test.ngrok.zkk.me
ngrok配置http使用8888端口,https使用9999端口
那么在nginx的配置文件中添加以下内容
请修改相关参数,ssl证书需要是类似于*.ngrok.zkk.me的泛域名证书
server
{
listen 80;
#listen [::]:80;
server_name test.ngrok.zkk.me;
location / {
proxy_pass http://test.ngrok.zkk.me:8888;
}
}
server
{
listen 443 ssl http2;
#listen [::]:443 ssl http2;
server_name test.ngrok.zkk.me;
ssl on;
ssl_certificate /home/ngrok/assets/server/tls/snakeoil.crt;
ssl_certificate_key /home/ngrok/assets/server/tls/snakeoil.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
ssl_session_cache builtin:1000 shared:SSL:10m;
#ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
location / {
proxy_pass https://test.ngrok.zkk.me:9999;
}
}
然后重新载入nginx服务
service nginx reload
原先你需要使用http://test.ngrok.zkk.me:8888 和https://test.ngrok.zkk.me:9999 访问 而现在你可以使用http://test.ngrok.zkk.me 和 https://test.ngrok.zkk.me 访问,也就是正常的80和443端口。