frp设置nginx无效问题

NO.1
使用场景

frp代理服务

使用nginx去除特定端口访问

server{
        listen 80;
        listen [::]:80;
        server_name xxx.xxxxxxxx.com; # 这里设置子域名转发规则
        location / {
           # root   /var/www/html/client; #站点目录
            # index index.html index.htm;
            # 指向本地的nodejs服务器
            proxy_pass http://0.0.0.0:99999;
            #设置请求头,并将头信息传递给服务器端
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            # 强制跳转https
            # rewrite ^(.*)$    https://$host$1 permanent;
        }
    }
NO.2
核心内容

端口设置

  1. listen 80;为监听ipv4地址
  2. listen [::]:80为监听ipv6地址
  3. server_name为要代理的域名

host信息

代理给Frp最重要的配置是保留host信息

IP设置

本地代理的方式有三种

  1. localhost
  2. 127.0.0.1
  3. 0.0.0.0

如果前两种配置导致nginx代理无效,请直接使用0.0.0.0

NO.3
Tips

本文环境为http配置 https的配置不在此列,此配置经测试有效

END