nginx反代ngrok的问题

浏览:40日期:2022-07-14

问题描述

我的机器上部署了nginx与ngrok但是我需要让两个程序都使用80和443我现在ngrok监听81,444然后nginx反代

反代配置如下

server {listen 80; server_name *.0n0.win; root html; index index.html index.htm index.php; ## send request back to apache ## location / {proxy_pass http://127.0.0.1:81;#Proxy Settingsproxy_redirect off;#proxy_set_header Host downloads.openwrt.org;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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;proxy_max_temp_file_size 0;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k; }} server { listen 443; server_name *.0n0.win; ssl on; ssl_certificate /etc/letsencrypt/live/shirakun.cc/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/shirakun.cc/privkey.pem;# access_log logs/quancha.access.log main;# error_log logs/quancha.error.log; root html; index index.html index.htm index.php; ## send request back to apache ## location / {proxy_pass https://127.0.0.1:444;#Proxy Settingsproxy_redirect off;#proxy_set_header Host downloads.openwrt.org;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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;proxy_max_temp_file_size 0;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k; }}

但是,现在出现一个问题,我映射后直接访问仍提示隧道未映射,然后还是得在域名后面加上:81才能访问,请问如何解决

问题解答

回答1:

server {listen 80; server_name *.0n0.win; root html; index index.html index.htm index.php; ## send request back to apache ## location / {proxy_pass http://127.0.0.1:81;#Proxy Settingsproxy_redirect off;#proxy_set_header Host downloads.openwrt.org;proxy_set_header Host $host:81;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;proxy_max_temp_file_size 0;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k; }} server { listen 443; server_name *.0n0.win; ssl on; ssl_certificate /etc/letsencrypt/live/shirakun.cc/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/shirakun.cc/privkey.pem;# access_log logs/quancha.access.log main;# error_log logs/quancha.error.log; root html; index index.html index.htm index.php; ## send request back to apache ## location / {proxy_pass https://127.0.0.1:444;#Proxy Settingsproxy_redirect off;#proxy_set_header Host downloads.openwrt.org;proxy_set_header Host $host:444;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;proxy_max_temp_file_size 0;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k; }}回答2:

我也被这个问题坑到了。

解决方法就是注释掉

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

这行。

如果nginx反代的同时又转发了真实的IP地址,ngrok会收到两个ip导致冲突。

回答3:

国内最大nat技术交流社区里有很多资源 http://natforum.com

相关文章: