在centos上实现nginx + frp+ https实现内网穿透

  1. 网络拓扑图
    在centos上实现nginx + frp+ https实现内网穿透_第1张图片

  2. 云服务器端frp server 配置略

  3. centos 端frp client 配置
    3.1 上传frp 到centos 略
    3.2 解压frp

tar -xzvf frp_0.38.0_linux_amd64.tar.gz 

3.3 移动文件

cd frp_0.38.0_linux_amd64
mkdir /etc/frp
cp frpc.ini /etc/frp/
mv frpc /usr/bin/
mv systemd/frpc.service /usr/lib/systemd/system/

3.4 设置开机自启

systemctl enable frpc.service

3.5 修改配置文件

vim /etc/frp/frpc.ini
# 文件内容
[common]
server_addr = 服务器地址
server_port = 37000
token = 连接密码

[https]
type = tcp
local_ip = 127.0.0.1
local_port = 30080
remote_port = 33080

3.6 开启frpc服务

systemctl start frpc.service
  1. 安装nginx
    4.1 上传nginx到centos 略
    4.2 移动文件,并解压
mv nginx-1.18.0.tar.gz /opt
cd /opt
tar -xzvf nginx-1.18.0.tar.gz
mv nginx-1.18.0 nginx
cd nginx

4.3 配置模块

./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --with-http_ssl_module
## 若报错则需安装依赖
## yum -y install gcc gcc-c++ autoconf automake make
## yum -y install pcre-devel
## yum -y install openssl openssl-devel

4.4 编译nginx

make 
cp /opt/nginx/objs/nginx /usr/bin/nginx
  1. 证书申请
    5.1 我用的是阿里云的域名,那里有免费的证书可以使用,具体过程略
  2. 配置反向代理及ssl证书
    6.1 将证书解压至指定目录
cd /opt/nginx/conf
mkdir cert
mv /root/cert_nginx.zip /opt/nginx/conf/cert/
cd /opt/nginx/conf/cert/
unzip cert_nginx.zip
# 若 unzip: 未找到命令
# yum install -y unzip

6.2 修改nginx配置文件

vim /opt/nginx/conf/nginx.conf 
# 文件内容,在最下方的} 上方写入
        server {
                listen 30080 ssl;

                server_name 你的域名;

                ssl_certificate cert/你的证书名称.pem;
                ssl_certificate_key cert/你的证书名称.key;
                ssl_session_timeout 5m;
                ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #表示使用的加密套件的类型。
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
                ssl_prefer_server_ciphers on;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                error_page 497 301 https://$http_host$request_uri;
                location / {
                		# 物理机地址
                        proxy_pass http://192.168.122.2:34080;
                        proxy_connect_timeout 600;
                        proxy_read_timeout 600;
                }
        }

  1. 启动nginx
nginx
## 或者重启nginx
nginx -s reload

注:在centos访问物理机时,可能有防火墙拦截,请自行解决

你可能感兴趣的:(Linux,nginx反向代理,服务器)