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.comroot /data/bbs; # 网站根目录为/data/bbslocation / { index index.html;}   
}# 配置www.blog.com虚拟主机
server {listen 80; # 监听80端口server_name www.blog.com; # 域名为www.blog.comroot /data/blog; # 网站根目录为/data/bloglocation / { 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/684865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

讲解用Python处理Excel表格

我们今天来一起探索一下用Python怎么操作Excel文件。与word文件的操作库python-docx类似&#xff0c;Python也有专门的库为Excel文件的操作提供支持&#xff0c;这些库包括xlrd、xlwt、xlutils、openpyxl、xlsxwriter几种&#xff0c;其中我最喜欢用的是openpyxl&#xff0c;这…

【天幕系列 02】开源力量:揭示开源软件如何成为技术演进与社会发展的引擎

文章目录 导言01 开源软件如何推动技术创新1.1 开放的创新模式1.2 快速迭代和反馈循环1.3 共享知识和资源1.4 生态系统的建设和扩展1.5 开放标准和互操作性 02 开源软件的商业模式2.1 支持和服务模式2.2 基于订阅的模式2.3 专有附加组件模式2.4 开源软件作为平台模式2.5 双重许…

【计算机网络】物理层|传输介质|物理层设备|宽带接入技术

目录 一、思维导图 二、传输介质 1.传输介质——导引型 2.传输介质——非导引型​编辑 三、物理层设备 1.物理层设备&#xff1a;中继器&集线器 2.宽带接入技术&#xff08;有线&#xff09; ​编辑 四、趁热打铁☞习题训练 五、物理层总思维导图 推荐 前些天发现…

【C++】友元、内部类和匿名对象

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 1. 友元 1.1 友元函数 1.2 友元类 2. 内部类 2.1 成员内部类 2.2 局部内部类 3. 匿名对象 3.1 基本概念 3.1 隐式转换 1…

Node.js开发-MongoDB

MongoDB 1) Mongoose2) 插入文档3) 字段类型4) 字段值验证5) CRUD1) 增加2) 删除3) 更新4) 查询 6) 条件控制1) 运算符2) 逻辑运算3) 正则匹配 7) 个性化读取1) 字段筛选2) 数据排序3) 数据截取 1) Mongoose 介绍 Mongoose 是一个对象文档模型库&#xff0c;官网 http://www.…

在已有代码基础上创建Git仓库

在已有代码基础上创建Git仓库 背景方法处理问题 背景 先进行了代码编写&#xff0c;后续想放入仓库方便大家一起合作开发&#xff0c;此时需要在已有代码的基础上建立仓库。 方法 首先在Gitee或者GitHub上创建仓库&#xff0c;这里以Gitee为例。创建完后&#xff0c;我们可以…

各类有关于花卉的深度学习数据集

花卉的识别和分类在深度学习过程中是最常见的使用的案例&#xff0c;因此各类有关花卉分类、识别、计数的图像数据集是大家都常用的数据集。最近收集到各类有关花卉的各类数据集分享给大家&#xff01;&#xff01; 1、16种花常见的图像数据集 数据说明&#xff1a;我们看到我…

Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasmBlazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端…

1070A A. Find a Number bfs同时处理数和数位和 ,依次处理每一位数

Problem - 1070A - Codeforces A - Find a Number CodeForces - 1070A -记忆化广搜-同余定理_codeforces 1070a find a number(bfs)-CSDN博客 这个大佬的博客代码写的非常好看。 ———— &#xff08;其实第二个样例32位的数long long存不下&#xff0c;就知道这道题不是寻…

【实战】一、Jest 前端自动化测试框架基础入门(二) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(二)

文章目录 一、Jest 前端自动化测试框架基础入门5.Jest 中的匹配器toBe 匹配器toEqual匹配器toBeNull匹配器toBeUndefined匹配器和toBeDefined匹配器toBeTruthy匹配器toBeFalsy匹配器数字相关的匹配器字符串相关的匹配器数组相关的匹配器异常情况的匹配器 6.Jest 命令行工具的使…

DSA 经典数据结构与算法 学习心得和知识总结(三) |有向无环图及其应用

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《算法导论》第三版 就是这本被封神的杰作&#xff0c;就是它&#x1f926; 2、参考书籍&#xff1a;《数据结构》严奶奶版 3、参考书…

DataX源码分析-插件机制

系列文章目录 一、DataX详解和架构介绍 二、DataX源码分析 JobContainer 三、DataX源码分析 TaskGroupContainer 四、DataX源码分析 TaskExecutor 五、DataX源码分析 reader 六、DataX源码分析 writer 七、DataX源码分析 Channel 八、DataX源码分析-插件机制 文章目录 系列文章…

基于GPT一键完成数据分析全流程的AI Agent: Streamline Analyst

大型语言模型&#xff08;LLM&#xff09;的兴起不仅为获取知识和解决问题开辟了新的可能性&#xff0c;而且催生了一些新型智能系统&#xff0c;例如旨在辅助用户完成特定任务的AI Copilot以及旨在自动化和自主执行复杂任务的AI Agent&#xff0c;使得编程、创作等任务变得高效…

Prompt Tuning:深度解读一种新的微调范式

阅读该博客&#xff0c;您将系统地掌握如下知识点&#xff1a; 什么是预训练语言模型&#xff1f; 什么是prompt&#xff1f;为什么要引入prompt&#xff1f;相比传统fine-tuning有什么优势&#xff1f; 自20年底开始&#xff0c;prompt的发展历程&#xff0c;哪些经典的代表…

【ASP.NET Core 基础知识】--最佳实践和进阶主题--微服务和容器化

Tip&#xff1a;想要了解并学习微服务和容器化的知识&#xff0c;请跳转到《Docker极简教程》 一、微服务概述 1.1 什么是微服务&#xff1f; 微服务&#xff08;Microservices&#xff09;是一种软件架构风格&#xff0c;其中软件系统被划分为一组小型、自治的服务单元&…

CV | Segment Anything论文详解及代码实现

本文主要是详解解释了SAM的论文部分以及代码实现~ 论文&#xff1a;2023.04.05_Segment Anything 论文地址&#xff1a;2304.02643.pdf (arxiv.org) 代码地址&#xff1a;facebookresearch/segment-anything: The repository provides code for running inference with the Seg…

RabbitMQ实现延迟消息的方式-死信队列、延迟队列和惰性队列

当一条消息因为一些原因无法被成功消费&#xff0c;那么这这条消息就叫做死信&#xff0c;如果包含死信的队列配置了dead-letter-exchange属性指定了一个交换机&#xff0c;队列中的死信都会投递到这个交换机内&#xff0c;这个交换机就叫死信交换机&#xff0c;死信交换机再绑…

随机过程及应用学习笔记(四) 马尔可夫过程

马尔可夫过程是理论上和实际应用中都十分重要的一类随机过程。 目录 前言 一、马尔可夫过程的概念 二、离散参数马氏链 1 定义 2 齐次马尔可夫链 3 齐次马尔可夫链的性质 三、齐次马尔可夫链状态的分类 四、有限马尔可夫链 五、状态的周期性 六、极限定理 七、生灭过…

【洛谷 B3614】【模板】栈 题解(栈+STL)

【模板】栈 题目描述 请你实现一个栈&#xff08;stack&#xff09;&#xff0c;支持如下操作&#xff1a; push(x)&#xff1a;向栈中加入一个数 x x x。pop()&#xff1a;将栈顶弹出。如果此时栈为空则不进行弹出操作&#xff0c;输出 Empty。query()&#xff1a;输出栈顶…