使用 Nginx 反向代理配置二级域名访问多个服务
在一个服务器中运行多个服务时,直接通过 IP 和端口访问不仅不方便记忆,也不利于管理。通过 Nginx 反向代理,可以将不同的服务配置成二级域名进行访问,从而简化访问方式。以下是详细的步骤和配置示例。
前提条件
- 已安装并配置了 Nginx。
- 已有一个域名,并可以添加二级域名解析。
- 各个服务已经在服务器上运行,并可以通过 IP 和端口访问。
步骤
1. 安装 Nginx
如果还未安装 Nginx,可以通过以下命令进行安装
# Ubuntu/Debian sudo apt update sudo apt install nginx # CentOS/RHEL sudo yum install epel-release sudo yum install nginx
2. 配置 DNS 解析
在域名管理后台添加二级域名的 A 记录,将其解析到服务器的 IP 地址。例如:
二级域名 | 类型 | 值 |
---|---|---|
service1.example.com | A | 服务器 IP 地址 |
service2.example.com | A | 服务器 IP 地址 |
service3.example.com | A | 服务器 IP 地址 |
3. 配置 Nginx
编辑 Nginx 配置文件,通常位于 (centos)/etc/nginx/nginx.conf
或 /etc/nginx/conf.d/
(Ubuntu)/etc/nginx/sites-enabled
目录下。可以创建一个新的配置文件,例如 services.conf
。
sudo vim services.conf
在文件中添加以下配置:
# 配置 service1 的反向代理
server {
listen 80;
server_name service1.example.com;
location / {
proxy_pass http://127.0.0.1:8081; # 假设 service1 运行在 127.0.0.1:8081
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;
}
}
# 配置 service2 的反向代理
server {
listen 80;
server_name service2.example.com;
location / {
proxy_pass http://127.0.0.1:8082; # 假设 service2 运行在 127.0.0.1:8082
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;
}
}
# 配置 service3 的反向代理
server {
listen 80;
server_name service3.example.com;
location / {
proxy_pass http://127.0.0.1:8083; # 假设 service3 运行在 127.0.0.1:8083
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;
}
}
4. 测试配置
在保存配置文件后,测试 Nginx 配置是否正确:
sudo nginx -t
如果配置正确,可以重新加载 Nginx:
sudo systemctl reload nginx
或
nginx -s reload
5. 访问服务
现在,你可以通过以下二级域名访问不同的服务:
-
http://service1.example.com
-
http://service2.example.com
-
http://service3.example.com
总结
通过 Nginx 反向代理,将不同的服务配置成二级域名,可以简化访问方式,提高管理效率。只需配置好 DNS 解析和 Nginx 配置文件,即可实现此功能。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 By2Tech
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果