赞
踩
CentOS7.9 nginx1.24.0 FRP
主机 | IP |
---|---|
阿里云服务器 | 47.109.136.10 |
内网服务器web1 | 10.0.0.10 |
内网服务器web2 | 10.0.0.11 |
内网服务器web3 | 10.0.0.12 |
1、四台主机分别安装nginx(此次代理服务器和http服务器都将使用nginx配置)、代理服务器安装frp服务器端,三台web服务器安装frp客户端
注释以下内容,也可以不注释,直接在主配置文件修改,就是后期维护麻烦,为了方便管理,还是将内容写到conf.d目录下吧,但需要在配置文件中添加一行
include /etc/nginx/conf.d/*.conf; ,表示在nginx会读取conf.d目录下的所有以.conf结尾的配置文件
- vim /etc/nginx/nginx.conf
- # server {
- # listen 80;
- # listen [::]:80;
- # server_name _;
- # root /usr/share/nginx/html;
- #
- # # Load configuration files for the default server block.
- # include /etc/nginx/default.d/*.conf;
- #
- # error_page 404 /404.html;
- # location = /404.html {
- # }
- #
- # error_page 500 502 503 504 /50x.html;
- # location = /50x.html {
- # }
- # }
在conf.d目录下创建proxy.conf文件(名字自定义,后缀以.conf结尾就行)
- [root@server nginx]# pwd
- /etc/nginx
- [root@server nginx]# cd conf.d/
- [root@server conf.d]# ls
- proxy.conf
- [root@server conf.d]# cat proxy.conf
-
- upstream web1 {
- server 127.0.0.1:8080;
- server 127.0.0.1:8081;
- server 127.0.0.1:8082;
- }
-
- server {
- listen 80;
- server_name 47.109.136.120;
- location / {
- proxy_pass http://web1;
- proxy_set_header Host $host;
- 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;
- }
- }
-
- [root@server conf.d]#
保存配置,systemctl reload nginx使配置生效
安装包https://download.csdn.net/download/qq_46131155/88964259
3.1、下载之后解压,删除客户端相关的内容
- [root@server ~]# tar xf frp_0.33.0_linux_amd64.tar.gz -C /opt/
- [root@server ~]# cd /opt
- [root@server opt]# ls
- frp_0.33.0_linux_amd64
- [root@server opt]# cd frp_0.33.0_linux_amd64/
- [root@server frp_0.33.0_linux_amd64]# ls
- frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
- [root@server frp_0.33.0_linux_amd64]# rm -rf frpc*
- [root@server frp_0.33.0_linux_amd64]# ls
- frps frps_full.ini frps.ini LICENSE systemd
- [root@server frp_0.33.0_linux_amd64]#
3.2、修改配置文件frps.ini
- [root@server frp_0.33.0_linux_amd64]# vim frps.ini
- [common]
- bind_port = 7000 //frp默认端口,云服务器需要放开的端口,与内网服务器进行通信
-
- dashboard_port = 7500 //frp的web页面登录默认端口,可不写
- dashboard_user = admin //frp web页面登录用户
- dashboard_pwd = 123456 //登录密码
- enable_prometheus = true //配置监控
-
3、由于我用的是阿里云的云服务器,在这里就用的阿里云服务器做示例,登录阿里云服务器管理控制台,点击安全组
选择手动添加,将圈内的端口号放开,其中8080、8081、8082端口可自己定义,但注意端口不能冲突。
配置完成后服务器需要重启,否则配置不生效
三台内网服务器的nginx配置没有太大区别,只需要改动IP
- yum install epel-release -y //安装epel扩展源
- yum install nginx -y
1.1、修改配置文件nginx.conf,注释以下内容,也可以不注释,直接在主配置文件修改,就是后期维护麻烦,为了方便管理,还是将内容写到conf.d目录下吧,但需要在配置文件中添加一行
include /etc/nginx/conf.d/*.conf; ,表示在nginx会读取conf.d目录下的所有以.conf结尾的配置文件
- [root@web02 ~]# cat /etc/nginx/nginx.conf
-
- include /etc/nginx/conf.d/*.conf;
-
- # server {
- # listen 80;
- # listen [::]:80;
- # server_name _;
- # root /usr/share/nginx/html;
-
- # # Load configuration files for the default server block.
- # include /etc/nginx/default.d/*.conf;
-
- # error_page 404 /404.html;
- # location = /404.html {
- # }
-
- # error_page 500 502 503 504 /50x.html;
- # location = /50x.html {
- # }
- # }
1.2、nginx目录下创建conf.d,创建web1.conf输入以下内容
- [root@web01 conf.d]# ls
- web1.conf
- [root@web01 conf.d]# cat web1.conf
- server {
- listen 80;
- server_name 10.0.0.11;
- charset utf-8;
- access_log /var/log/nginx/accessweb1.log main;
- error_log /var/log/nginx/errorweb1.log;
- root /usr/share/nginx/html;
- location / {
- index index.html index.htm;
- }
- }
-
- [root@web01 conf.d]#
其余两台都是一样的配置,将上面的server_name 10.0.0.11;改为本机IP就行,(也可以写域名,但需要配置hosts解析。)
1、下载frp压缩包后并进入该目录
- [root@web01 ~]# cd frp_0.33.0_linux_amd64/
- [root@web01 frp_0.33.0_linux_amd64]# ls
- frpc frpc_full.ini frpc.ini LICENSE systemd
- [root@web01 frp_0.33.0_linux_amd64]#
1.1修改frpc.ini配置文件
- [root@web01 frp_0.33.0_linux_amd64]# cat frpc.ini
- [common]
- server_addr = 47.109.136.10
- server_port = 7000
-
- [http2] //名称不能与其他内网服务器配置的重复
- type = tcp //所使用的协议
- local_ip = 127.0.0.1 //本机IP
- local_port = 80 //表示将本机的80端口映射到云服务器的8080端口
- remote_port = 8080 //与云服务放开的端口对应
其他两台一样的配置,只需要修改
1、云服务器cd到frp安装目录
执行命令
./frps -c ./frps.ini
2、内网服务器cd到frp安装目录
执行命令
./frpc -c ./frpc.ini
3、浏览器访问云服务器ip,请求将会被转发到三台内网web服务器上,从而实现公网访问内网;由于没有给nginx配置负载均衡策略,默认采用的轮询策略进行转发访问。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。