服务器安装frps实现内网穿透(3)-服务端nginx和frps共用80/443端口

前两篇文章已经说了frps和frpc的相关配置,没有公网ip时通过openwrt上配置frpc实现内网的穿透。但如果我们把vhost_http_port和vhost_https_port配置成80和443的话,服务器上就不方便再搭建其他网站了。今天介绍一种服务器上nginx和frps共用80、443端口的方法。

首先说一下我的环境,服务器用的阿里云轻量应用服务器,ubuntu 20.04 安装宝塔7.9.3 并安装lnmp环境。服务器的frps安装参考第一篇文章。vhost_http_port和vhost_https_port依然配置成9004和9005。

将域名解析到服务器,比如我的是bgs.xxx.com  将该域名解析到运行frps的服务器上,客户端frpc的配置和第二篇文章一致。

接下来进行服务器上的配置

1、在宝塔上添加网站,网站的域名为bgs.xxx.com

2、点击网站的设置,申请证书

3、选择配置文件在最后一个}前添加 如下内容,9004端口是我的frps的http监听端口。

location /

    {

        proxy_pass http://127.0.0.1:9004;

        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;

}

4、删除以下内容。

#禁止访问的文件或目录

    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)

    {

        return 404;

    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

    {

        expires      30d;

        error_log /dev/null;

        access_log /dev/null;

    }

    location ~ .*\.(js|css)?$

    {

        expires      12h;

        error_log /dev/null;

        access_log /dev/null;

    }

 至此就可以实现nginx和frps公用80/443端口了,运行在内网需要映射的网站就添加和删除以上内容。运行在服务器上的保持配置文件不变。

猜你喜欢

转载自blog.csdn.net/q52875991/article/details/128324520