综合 如何通过Frp和Nginx配置,实现通过阿里云服务器的子域名访问公司内网服务器上的服务

2024-11-19 06:45:49 +0800 CST views 1009

Frp结合Nginx配置使用子域名进行访问内网主机资源【测试成功】

一、需求背景

在该项目中,我们需要通过域名来访问公司内网服务器上通过Nginx部署的系统资源。系统架构如下:

  • 1台阿里云公网服务器
  • 1台公司内网服务器

目标是通过阿里云服务器的子域名访问内网服务器上部署的服务。

二、Frps服务端配置(阿里云服务器)

首先,在阿里云服务器上配置Frps服务端。

编辑 frps.ini 文件:

[common]
bind_port = 7000
vhost_http_port = 7000
subdomain_host = xxx.com

配置说明:

  • bind_port:Frps 服务监听的端口。
  • vhost_http_port:虚拟主机的HTTP端口。
  • subdomain_host:配置允许使用子域名访问,xxx.com 为你的主域名。

三、Nginx配置(阿里云服务器)

接着,在阿里云服务器上配置Nginx,将域名请求转发到Frp服务。

编辑 demo.conf 文件:

server {
    listen 80;
    server_name eam-demo.xxx.com;

    location / {
        proxy_pass http://localhost:7000;
        proxy_set_header Host $host;
    }

    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root html;
    }
}

配置说明:

  • listen 80;:监听在80端口,接收来自客户端的HTTP请求。
  • server_name eam-demo.xxx.com;:指定虚拟主机的域名为 eam-demo.xxx.com
  • location /:将根路径的请求代理到本地的 http://localhost:7000,即Frps服务所在端口。
  • proxy_passproxy_set_header:设置请求转发,并保持正确的Host头。
  • 错误页面配置:定义了在发生500、502、503或504错误时,返回自定义的错误页面。

四、Frpc客户端配置(公司内网服务器)

在公司内网服务器上配置Frpc客户端,将本地服务暴露出去。

编辑 frpc.ini 文件:

[web_eam-demo]
type = http
local_ip = 127.0.0.1
local_port = 9001
subdomain = eam-demo

[test_eam-demo]
type = http
local_ip = 127.0.0.1
local_port = 9001
subdomain = test

配置说明:

  • type = http:表示这是一个HTTP代理。
  • local_ip = 127.0.0.1:指向本地服务的IP地址。
  • local_port = 9001:指向本地服务的端口号。
  • subdomain:定义了通过何种子域名访问,eam-demotest 分别对应 eam-demo.xxx.comtest.xxx.com

五、总结

通过上述配置,我们成功实现了通过 test.xxx.com 访问公司内网服务器上的服务,无需显式地指定端口号。这种方案特别适合需要将内网服务通过公共网络暴露出来的场景,并且结合Nginx可以实现更灵活的请求转发和域名管理。

复制全文 生成海报 网络 服务器配置 内网穿透

推荐文章

如何使用go-redis库与Redis数据库
2024-11-17 04:52:02 +0800 CST
向满屏的 Import 语句说再见!
2024-11-18 12:20:51 +0800 CST
Linux 常用进程命令介绍
2024-11-19 05:06:44 +0800 CST
一个数字时钟的HTML
2024-11-19 07:46:53 +0800 CST
纯CSS绘制iPhoneX的外观
2024-11-19 06:39:43 +0800 CST
JavaScript设计模式:观察者模式
2024-11-19 05:37:50 +0800 CST
Vue 3 路由守卫详解与实战
2024-11-17 04:39:17 +0800 CST
使用Ollama部署本地大模型
2024-11-19 10:00:55 +0800 CST
Vue中的`key`属性有什么作用?
2024-11-17 11:49:45 +0800 CST
Go 如何做好缓存
2024-11-18 13:33:37 +0800 CST
JavaScript数组 splice
2024-11-18 20:46:19 +0800 CST
Web 端 Office 文件预览工具库
2024-11-18 22:19:16 +0800 CST
npm速度过慢的解决办法
2024-11-19 10:10:39 +0800 CST
java MySQL如何获取唯一订单编号?
2024-11-18 18:51:44 +0800 CST
Python实现Zip文件的暴力破解
2024-11-19 03:48:35 +0800 CST
在 Nginx 中保存并记录 POST 数据
2024-11-19 06:54:06 +0800 CST
Plyr.js 播放器介绍
2024-11-18 12:39:35 +0800 CST
阿里云发送短信php
2025-06-16 20:36:07 +0800 CST
go命令行
2024-11-18 18:17:47 +0800 CST
JS 箭头函数
2024-11-17 19:09:58 +0800 CST
如何在Vue3中处理全局状态管理?
2024-11-18 19:25:59 +0800 CST
Graphene:一个无敌的 Python 库!
2024-11-19 04:32:49 +0800 CST
随机分数html
2025-01-25 10:56:34 +0800 CST
Go 单元测试
2024-11-18 19:21:56 +0800 CST
资源文档库
2024-12-07 20:42:49 +0800 CST
四舍五入五成双
2024-11-17 05:01:29 +0800 CST
程序员茄子在线接单