Nginx反向代理多虚拟主机节点服务器

IP规划:

servera,serverd作为web服务器

serverb作为nginx负载均衡服务器

serverc域名映射服务器

servera(192.168.233.132)配置:

复制代码
# 安装Nginx
yum install nginx -y

# 进入Nginx配置文件目录
cd /etc/nginx/conf.d/

# 编辑配置文件,定义两个虚拟主机www.bbs.com和www.blog.com
vim www.conf

# 配置www.bbs.com虚拟主机
server {
    listen 80; # 监听80端口
    server_name www.bbs.com; # 域名为www.bbs.com
    root /data/bbs; # 网站根目录为/data/bbs
    location / { 
        index index.html;
    }   
}

# 配置www.blog.com虚拟主机
server {
    listen 80; # 监听80端口
    server_name www.blog.com; # 域名为www.blog.com
    root /data/blog; # 网站根目录为/data/blog
    location / { 
        index index.html;
    }   
}

# 创建网站目录
mkdir -p /data/{blog,bbs}

# 在网站目录中创建首页文件
echo "`hostname -I`, bbs" > /data/bbs/index.html
echo "`hostname -I`, blog" > /data/blog/index.html

# 重启Nginx服务
systemctl restart nginx

serverd(192.168.233.141)配置同servera

serverc(192.168.233.140)配置:

复制代码
# 使用vim编辑/etc/hosts文件,将域名www.bbs.com和www.blog.com映射到IP地址192.168.233.132
vim /etc/hosts
192.168.233.132 www.bbs.com www.blog.com

# 使用curl命令测试解析www.blog.com域名是否成功
curl www.blog.com

serverb(192.168.233.144)配置:

复制代码
# 安装Nginx
yum install nginx -y

# 进入Nginx配置文件目录
cd /etc/nginx/conf.d/

# 编辑Nginx主配置文件nginx.conf
vi nginx.conf
# 注释掉默认的listen和root配置
# listen       80;
# listen       [::]:80;
# root         /usr/share/nginx/html;

# 进入Nginx虚拟主机配置文件目录
cd conf.d/

# 编辑代理配置文件proxy.conf
vim proxy.conf
# 配置代理池upstream wwwPools,指定两个后端服务器
upstream wwwPools {
    server 192.168.233.132;
    server 192.168.233.141;
}

# 配置www.bbs.com虚拟主机
server {
    listen 80;
    server_name www.bbs.com;

    location / {
        proxy_pass http://wwwPools; # 使用代理池转发请求到后端服务器
        proxy_set_header host $host; # 设置代理请求头
        proxy_set_header X-Forwarded-For $remote_addr; # 设置代理请求者IP地址
    }
}

# 配置www.blog.com虚拟主机
server {
    listen 80;
    server_name www.blog.com;

    location / {
        proxy_pass http://wwwPools; # 使用代理池转发请求到后端服务器
        proxy_set_header host $host; # 设置代理请求头
        proxy_set_header X-Forwarded-For $remote_addr; # 设置代理请求者IP地址
    }
}

# 重启Nginx服务
systemctl restart nginx

# 测试代理设置,修改域名解析为192.168.233.144
# 执行4次curl请求测试www.bbs.com域名是否成功解析并代理到后端服务器
for ((i=1;i<=4;i++)); do curl http://www.bbs.com; done
相关推荐
MilesShi1 小时前
从 scheduler_tick 到上下文切换:深入解析 Linux 内核的 TIF_NEED_RESCHED 标志设置流程
linux·运维·单片机
方渐鸿4 小时前
【2024】k8s集群 图文详细 部署安装使用(两万字)
java·运维·容器·kubernetes·k8s·运维开发·持续部署
晓衣4 小时前
2025“獬豸杯”全国电子数据取证竞赛-k8s服务器取证wp
服务器·经验分享·程序人生·网络安全·容器·kubernetes·学习方法
我爱云计算4 小时前
K8S详解(5万字详细教程)
linux·运维·云原生·容器·kubernetes
明明跟你说过4 小时前
【k8s】资源限制管理:Namespace、Deployment与Pod的实践
运维·docker·云原生·容器·kubernetes·k8s
2301_794333916 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
打码人的日常分享7 小时前
运维服务方案,运维巡检方案,运维安全保障方案文件
大数据·运维·安全·word·安全架构
荣光波比7 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
武文斌778 小时前
单片机:DS18B20测温度、74HC595扩展芯片、8*8LED矩阵
运维·服务器·单片机·嵌入式硬件
fengfuyao9858 小时前
诊断并修复SSH连接Github时遇到的“connection closed“错误
运维·ssh·github