FRP内网穿透-HTTPS代理Web服务

通过自定义域名访问内网的 Web 服务

本文将介绍使用 自定义域名 通过FRP将内网机器上的web服务映射到外网,并且配置SSL证书,使用 HTTPS协议 访问。

需要使用的工具:

  • 域名一个(解析到 FRP服务端 机器上)
  • 域名证书(若不需要 https 可不需要)
  • NGINX(安装在 FRP客户端 机器上)

1. 配置FRP服务端

  • 配置 frps.toml
    在 frps.toml 文件中添加以下内容,以指定 HTTP 请求的监听端口为 80,HTTPS请求的监听端口为 443:

    toml 复制代码
    # HTTP 类型代理
    vhostHTTPPort = 80
    # HTTPS 类型代理
    vhostHTTPSPort = 443
  • 配置好需重启frps服务

    shell 复制代码
    sudo systemctl restart frps

2. 配置FRP客户端

  • 配置 frpc.toml
    在 frpc.toml 文件中添加一下内容,以指定访问域名及访问协议:

    toml 复制代码
    [[proxies]]
    name = "web1"
    type = "http"
    localPort = 80
    customDomains = ["test1.example.com"]
    
    [[proxies]]
    name = "web2"
    type = "https"
    localPort = 443
    customDomains = ["test2.example.com"]
  • 配置好需重启frpc服务

    shell 复制代码
    sudo systemctl restart frpc

3. 配置 NGINX

在内网机器上安装好Nginx
将SSL证书上传到内网机器

新增 nginx 配置(HTTP配置):

conf 复制代码
server {
	#HTTP 默认访问端口号为 80
	listen 80; 
	#请填写绑定证书的域名
	server_name test1.example.com; 

	location / {
		root   /opt/test/web1;
		try_files $uri $uri/ /index.html;
		index  index.html index.htm;
	}
}

新增 nginx 配置(HTTPS配置):

conf 复制代码
server {
	#HTTPS默认访问端口号为 443
	listen 443 ssl; 
	#请填写绑定证书的域名
	server_name test2.example.com; 
	#请填写证书文件的相对路径或绝对路径
	ssl_certificate /etc/nginx/conf.d/cert/test2.example.com.crt; 
	#请填写私钥文件的相对路径或绝对路径
	ssl_certificate_key /etc/nginx/conf.d/cert/test2.example.com.key; 
	ssl_session_timeout 5m;
	#请按照以下协议配置
	ssl_protocols TLSv1.2 TLSv1.3; 
	#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
	ssl_prefer_server_ciphers on;

	location / {
		root   /opt/test/web2;
		try_files $uri $uri/ /index.html;
		index  index.html index.htm;
	}
}

配置好需 重载nginx配置

shell 复制代码
# 校验nginx配置
sudo nginx -t
# 重载nginx配置
sudo nginx -s reload

4. 访问web服务

分别访问 http://test1.example.comhttps://test2.example.com,能访问则说明配置成功。

上一章:FRP内网穿透-客户端(frpc)

相关推荐
妮妮喔妮2 分钟前
linux:查看某个文件下开启的进程占用的是哪个端口?
linux·运维·服务器
powerfulhell11 分钟前
10.23作业
服务器
FJW02081441 分钟前
【Linux】输入输出管理
linux·运维·服务器
遇见火星1 小时前
Aiops探索:基于Ansible的Dify版本运维智能体落地思路
运维·服务器·ansible
TG_yunshuguoji2 小时前
亚马逊云渠道商:如何通过配置自动替换构建故障自愈的云架构?
运维·服务器·架构·云计算·aws
期待着20133 小时前
StarRocks 集群安装部署文档
linux·服务器
2301_772093564 小时前
高并发webserver_interview
运维·服务器·数据库·后端·网络协议·mysql·wireshark
haimin03714 小时前
ubuntu 20.04 安装xrdp远程桌面访问
linux·运维·ubuntu
TG:@yunlaoda360 云老大4 小时前
阿里云国际站GPU:怎么通过通过VNC连接实例?
服务器·阿里云·云计算
乌托邦的逃亡者4 小时前
Linux系统中配置history命令显示时间、IP、账号和操作命令
linux·运维·安全