今日在阿里云服务器研究frp,因为备案了,所以打算实现将frp中的http端口改成80端口,但是服务器已经搭建有其他网站把80端口,于是打算通过nginx实现共用80端口。

实现步骤:
已经部署好的80端口不用更改,只用新增一个nginx配置,将*.frp.51it.wang所有80全部转发到88端口上面,就可以实现访问80就可以访问到frp上的88端口(我部署的frp中的http是88端口)

其中nginx的核心配置如下:

server {
    listen 80;
    server_name *.frp.51it.wang;

     #拦截转发
    location / {
        proxy_intercept_errors on;
        proxy_pass http://127.0.0.1:88;
        proxy_set_header    Host            $host:80;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_hide_header   X-Powered-By;
    }
    

    access_log  /home/xx.log;
    error_log  /home/error.log;
}

然后重新启动nginx试试效果,就可以80共存了呢。


问题遗留:
但是想把frp默认的错误页面改成自定义的页面,拦截了404等报错到自定义的页面,虽然实现了,但是有个问题一直不知道怎么解决。
就是改了之后浏览器一直重定向到错误页面,导致无法访问页面,nginx日志也打印了很多重定向报错,估计是某个地方没设置对- -先粘贴出来看看有没有大佬解决,哈啊哈。

页面错误如下:
Nginx实现网站80端口和FRP共存

后台日志错误如下:
Nginx实现网站80端口和FRP共存

我配置的nginx如下:

server {
    listen 80;
    server_name *.frp.51it.wang;

    # 错误页配置
    error_page  404 404.html;
    location = /404.html {
    root       /home/www;
    }

     #拦截转发
    location / {
        proxy_intercept_errors on;
        proxy_pass http://127.0.0.1:88;
        proxy_set_header    Host            $host:80;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_hide_header   X-Powered-By;
    }
    

    access_log  /home/xx.log;
    error_log  /home/error.log;
}

目前就只有不自定义404页面了呢- -。