Nginx功能展示实验
Nginx功能展示实验
Nging可以作为反代服务器;也可以作为负载均衡器,并自带根据对后端服务器健康状态检测具有增删服务器的功能;也可以作为纯Web服务器,提供Web服务。
本实验将使用Nginx实现上述三种功能。
值得注意的是:Nginx的负载均衡调度功能是依赖反代功能才能实现的,所以,如果详细的描述拓扑结构的话,Nginx服务器的反代功能更靠近前端些,负载均衡调度功能肯定在反代一层的下一层。负载均衡功能不可能出现在反代的前一层。
实验中的https加密和缓存实验仅仅为了复习,与本实验的主体无密切关系。
实验说明
本次实验所用的反代服务器和Web服务器均使用Nginx程序,实验环境为CentOS7.3。
绘制实验拓扑图
graph TD
A[Client] -->|请求| B{Nginx}
B -->|响应| A
B -->|反代 & 调度| C(Web Server 1)
B -->|反代 & 调度| E(Web Server 2)
各主机节点的角色分配:
后端两台Web服务器使用Nginx提供纯Web服务。
前端一台Nginx服务器作为反向代理服务器和负载均衡器,同时具有反向代理和负载均衡调度两个功能。
IP分配:
Nginx Address :172.16.50.2(面向公网)、192.168.50.129(面向后端服务器)
Web Server 1 Address :192.168.50.128
Web Server 2 Address :192.168.50.131
节点间的关系如图所示。
实验过程
1. 先准备后端两台Web服务器
- 在webserver1上通过不同的端口部署三个虚拟主机,其中一个使用ssl方式,并提供默认访问页。配置如下:
vim /etc/nginx/conf.d/vhost.conf
server {
listen 80;
server_name 192.168.50.128;
root /web/nginx/html/vhost1;
index index.html;
}
server {
listen 8080;
server_name 192.168.50.128;
root /web/nginx/html/vhost2;
index index.html;
}
server {
listen 443 ssl;
server_name nginx.achudk.com;
root /web/nginx/ssl/vhost1;
ssl on;
ssl_certificate "/etc/pki/CA/certs/nginx.crt";
ssl_certificate_key "/etc/pki/CA/nginx.pem";
}
- 在webserver2上部署一个虚拟主机并提供默认访问页,方法同上
在实际生产环境中,两台web服务器提供的内容必须一致,本实验为了演示效果,故意将两台服务器的web页面不同,以示区别。
- 在Nginx服务器上设置sorry server 页面。
2. 部署Nginx的反代和负载均衡功能
要求:代理webserver1服务器的所有虚拟主机提供的站点
【注】
反代服务器可以设置两个网卡,外侧设置为公网,内侧设置为私网,可以代理ip为公网的或ip为私网的WebServer。
在实验过程中,可能会出现意外情况,可以试试删除反代服务器的缓存后再试试。
vim /etc/nginx/nginx.conf
# 在http{ }的上下文中添加如下内容
proxy_cache_path /var/cache/nginx/proxy_cache80 levels=1:2:1 keys_zone=proxycache80:20m max_size=1g;
upstream websrvs {
server 192.168.50.128:80 weight=1 max_fails=2 fail_timeout=3s;
server 192.168.50.131:80 weight=1;
server 127.0.0.1 backup;
# least_conn;
# hash $remote_addr;
hash $request_uri consistent;
keepalive 25;
}
vim /etc/nginx/conf.d/reverse_proxy.conf
server {
listen 80;
server_name 172.16.50.2;
location / {
proxy_pass http://websrvs;
proxy_cache proxycache80;
proxy_cache_key $request_uri;
proxy_cache_valid 200 302 301 2m;
proxy_cache_valid any 1m;
proxy_connect_timeout 70;
}
}
3. 整体试验结果验证
for ((i=1;i<=5;i++)); do curl http://172.16.50.2;done
当down掉一台web服务器时,仅有另一台提供web服务
当两台web服务器都down掉时,会显示sorry server页面。
Nginx功能展示实验的更多相关文章
- Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)
Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...
- nginx location展示及文件共享
nginx 目录展示及文件访问 效果: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5G9wfKK-1570116907804)(E:\Users\FangJunX ...
- CUDA 11功能展示
CUDA 11功能展示 CUDA 11 Features Revealed 新的NVIDIA A100 GPU基于NVIDIA安培GPU架构,实现了加速计算的最大一代飞跃.A100 GPU具有革命性的 ...
- C#Light 再推荐,顺便介绍WP8 功能展示项目
由于在项目中验证了C#Light脚本,C#Light的健壮和稳定程度已经得到了很大的提升. 现在可以更好的把C#Light介绍给大家使用,同时也有更多的自信,告诉大家这是一个已经具有商业价值的类库. ...
- "我爱记单词"测试报告兼功能展示
"我爱记单词"测试报告兼功能展示 前言: 我们大部分的测试都是一边开发一边完成的,这里给出软件开发基本完成后在使用时的一些测试例子. 一.背景介绍 我们的数据库中一共有10个表: ...
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示
一直以来,都希望整合一个以客户为中心的平台,有两个方面的考虑:一是实现客户数据.客户关系.客户管理等方面的整合,以便更好利用好客户的相关资源,发挥最大的营销效益:二是整合目前我的开发框架的所有模块和技 ...
- iOS 通知的变化ios9-10,新功能展示
二.新功能展示 1 使用 /iOS通知新功能玩法 2. 全面 iOS10里的通知与推送详情 一.变化 四.Notification(通知) 自从Notification被引入之后,苹果就不断的 ...
- Web版记账本开发记录(一)代码和功能展示
一丶基本机构 数据库截图 record表 年份表 index.jsp <%@ page language="java" contentType="text/html ...
- Nginx功能介绍
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的. 从2004年发布至今,凭借开元的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也可作 ...
随机推荐
- 201521123028 《Java程序设计》第3周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 201521123080《Java程序设计》第3周学习总结
1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...
- 201521123034《Java程序设计》第十三周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- Hyperledger Fabric 1.0 从零开始(五)——运行测试e2e
3:运行测试e2e 3.1.运行fabric-samples的问题说明 该问题说明能够解决6.1.平台特定使用的二进制文件配置第一步的问题.可以选择继续阅读该说明,或者等参考到6.1小节时再反向阅读本 ...
- 读取指定excel,修改并某个值并另存到指定路径
HSSFWorkBook是解析excel2007以前的版本(xls)之后的版本使用XSSFWrokBook(xlsx) 附:处理excel2007之后的版本代码: package gbyp.autoQ ...
- jQuery常用语法总结笔记
jQuery 1.入口函数 1 $(document).ready(function(){}); 2 $(function(){}); jQuery入口函数与js入 ...
- Oracle中Union与Union All的区别(适用多个数据库)
Oracle中Union与Union All的区别(适用多个数据库) 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或 ...
- Spring-Hibernate-web的延迟加载方案
1,现象与问题 /** * 由于Hibernate存在延迟加载问题,当Dao事务提交之后,session就关闭: * 此时如果到显示层就没有办法获取对象,使用openSessionInViewer是解 ...
- (一)关于java泛型的学习总结(泛型方法、泛型擦除)
目录概要 一.泛型方法 二.利用泛型方法的特性实现代码的简化 三. 关于泛型的擦除 四.无界通配符和原生类型区别 五.转型和警告 泛型 一般的类中的属性或方法的参数,只能使用具体的类型:要么是基本 ...
- 2014 Benelux Algorithm Programming Contest (BAPC 14)E
题目链接:https://vjudge.net/contest/187496#problem/E E Excellent Engineers You are working for an agency ...