怎么在Nginx上配置FRP支持任意端口呢?(访问的时候,需要添加端口号)
- 工作小总结
- 时间:2024-08-01 14:58
- 527人已阅读
简介
做过微信开发或者是支付的都知道,在本来联调的时候,需要的,FRP凯哥在这里就不介绍了。那么,有时候我们的服务ip不是固定的。可能是任意的。那么这个时候,怎么在Nginx上支持呢?比如下面是凯哥之前配置的。只能支持8082端口server { listen 80;
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
做过微信开发或者是支付的都知道,在本来联调的时候,需要的,FRP凯哥在这里就不介绍了。
那么,有时候我们的服务ip不是固定的。可能是任意的。那么这个时候,怎么在Nginx上支持呢 ?
比如下面是凯哥之前配置的。只能支持8082端口
server { listen 80; server_name 这里请修改成自己的; location ~^/ { resolver 8.8.8.8; proxy_pass http://$host:8082; proxy_redirect off; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_read_timeout 90; proxy_buffer_size 6k; proxy_buffers 6 128k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 256k; } location ~ .*\.(gif|jpg|png|bmp|swf|css|js)$ { proxy_pass http://$host:8082; expires 30d; } location ~ .*\.(js|css)?$ { expires 1d; } }
现在我本地不是8082了。是其他的,这个时候怎么办呢?
在你的Nginx配置中,你使用了proxy_pass http://$host:8082;
来指定后端服务的地址和端口。如果你希望支持任意端口,而不是固定在8082端口上,你可以通过以下方式来实现:
一种方法是在请求中包含端口号,并在proxy_pass
指令中使用变量来动态指定端口。但是Nginx默认不会解析URL中的端口号,所以你需要在proxy_pass
之前使用set
指令来设置一个变量,该变量值为请求URI中的端口号。
例如,你可以这样修改你的配置:
server { listen 80; server_name 这里请修改成自己的; # 添加set指令来获取请求URI中的端口号 set $backend_port $http_x_original_port; if ($backend_port = "") { set $backend_port 8082; # 如果没有传递端口,则使用默认端口8082 } location ~^/ { resolver 8.8.8.8; proxy_pass http://$host:$backend_port; proxy_redirect off; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_read_timeout 90; proxy_buffer_size 6k; proxy_buffers 6 128k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 256k; } # 保持其他location块不变 ... }
这样就可以了.。
需要注意,修改后,重启Nginx
上一篇: 怎么释放磁盘空间?
下一篇: 卡卡保皇礼包码大全及兑换方式一览