配置 Nginx 和 frps 共存 80/443 端口及泛域名支持教程
前言
常规情况下frps服务器端会占用80和443端口,为内网设备提供穿透,实现用户可以使用域名无端口访问内网设备.而在已经部署nginx的服务器上,由于nginx已经占用80和443端口,frps的HTTP和HTTPS需另外选择端口,可以通过nginx的反向代理配置让frps提供的穿透服务也能够使用80和443端口,实现nginx和frps共存.同时配置支持泛域名反向代理.
方案介绍
方案配置
frps.ini配置
由于nginx占用80/443端口,frps.ini中的
vhost_http_port
和vhost_https_port
请更换为其他端口.subdomain_host
根据需求可选配置泛域名,或者注释删除此参数使用自定义域名.
frpc.ini配置
如果 frps.ini
配置了 subdomain_host
泛域名,那么 frpc.ini
中域名参数需使用 subdomain = xx
仅填写二级域名主机头即可,不要
填写完整域名.
如果 frps.ini
没有配置 subdomain_host
泛域名,那么 frpc.ini
中域名参数需使用 custom_domains = xx.xxx.com
需填写完整的域名.
nginx配置
proxy_pass http://127.0.0.1:1234;
中的HTTP
,请勿
写成HTTPS
.proxy_pass http://127.0.0.1:1234;
中1234
端口为frps
的HTTP
端口.proxy_set_header Host $host:80;
注意需加上80端口
,否则会无限循环301跳转,导致网页打不开提示重定向次数过多ERR_TOO_MANY_REDIRECTS
.
server { listen 80; server_name *.yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name *.yourdomain.com; ssl_certificate /usr/local/nginx/conf/ssl/yourdomain.com.crt; ssl_certificate_key /usr/local/nginx/conf/ssl/yourdomain.com.key; client_max_body_size 50m; client_body_buffer_size 256k; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; proxy_connect_timeout 300s; proxy_read_timeout 300s; proxy_send_timeout 300s; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_ignore_client_abort on; location / { proxy_pass http://127.0.0.1:1234; proxy_redirect off; proxy_set_header Host $host:80; proxy_ssl_server_name on; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
结语
更多FRP内网穿透相关技巧,教程及信息,请持续关注本站FRP内网穿透专栏:
本站提供免费和付费的技术支持.你可以通过留言,邮件,QQ的方式来进行技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面