vlambda博客
学习文章列表

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置


通过本章你将学会利用 Nginx 配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用 Nginx 反向代理和负载均衡,了解 Nginx 常用配置的说明。即学即用,你还在等什么?一睹为快先了解 Nginx 的三大功能。




全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

Nginx 核心功能


Nginx 可以作为一台 http 服务器做网站静态服务器,比如图片服务器。同时它轻量、高效,能有效减轻服务器压力。同时它还支持 https 服务。

Nginx 可以配置多台虚拟主机。实现在一台服务器虚拟出多个网站效果,省钱。


Nginx 最重要的是反向代理和负载均衡。在服务器集群中,Nginx 通过反向代理让性能高的服务器分担更多的负载,从而实现负载均衡的效果,利用率高。


效果图:

基于 ip 的虚拟主机的测试,

基于域名的虚拟主机的测试,

反向代理和负载均衡的测试。

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置


环境:CentOS 7 , nginx-1.13.6 ,
说明:Nginx 反向代理和负载均衡的操作前提都是基于域名的虚拟主机。不同的tomcat模拟不同的服务器,和生产环境最大的区别就是 ip 和 port。


Nginx 安装教程:

http://www.cnblogs.com/itdragon/p/7850985.html



全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

HTTP图片服务器


效果图

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

需求:

实现图片的上传和批量上传


技术:

Nginx,Vsftpd,Spring全家桶,KindEditor,CentOS


说明:

本章节内容主要是实现图片的上传功能。使用 KindEditer 是为了更好的演示图片的上传,回显,批量效果。


源码:


场景:

用户将图片上传到 tomcat 服务器上,再由 tomcat 服务器通过 FTP 上传到 Nginx  服务器。

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

http://www.cnblogs.com/itdragon/p/7864916.html




全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

配置多台虚拟主机


虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机都可以独立对外提供 www 服务。从而实现一台主机能对外提供多个 web 服务,而且每个虚拟主机之间是互不影响的。
Nginx 提供了三种虚拟主机配置方式,

1、基于ip的虚拟主机,

2、基于端口的虚拟主机,

3、基于域名的虚拟主机。


基于IP的虚拟主机

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

第一步:


第二步:


第三步:


第四步:

进入到 /usr/local/nginx/ 目录下,拷贝三份 html 目录,并分别修改 index.html  文件便于区分测试


第五步:


第六步:

(基于端口的虚拟主机和基于ip的虚拟主机配置几乎一样,只是在修改Nginx配置文件时,只修改监听的端口和root对应的目录,其他的没有变。这里就不贴命令了)


基于域名的虚拟主机


这是 Nginx 比较常用的配置,也是有利于人类使用的配置方式。这里通过修改 window 系统下的 host 文件来模拟 DNS 服务器。

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

第一步:

在 window 环境中,修改 host 文件,添加 ip 域名映射关系,用来模拟 DNS 服务器


第二步:

进入到 /usr/local/nginx/ 目录下,拷贝两份 html 目录,分别修改 index.html  文件便于区分测试


第三步:


第四步:




全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

反向代理

在了解 Nginx 反向代理之前,我们先熟悉一下什么是代理服务器


代理服务器:是一个夹在客户机和目标主机中间的服务器。能提高客户机访问响应速度,还能设置防火墙过滤不安全信息。


响应速度快:客户机发送请求,代理服务器接收请求后,再转发给目标主机。目标主机接收请求并将数据返回给代理服务器,代理服务器将数据返回给客户机同时也会保存数据到本地。若客户机下次有相同的请求,则直接从本地数据返回。从而提高了响应的速度。


设置防火墙:因为代理服务器夹在客户机和目标主机中间。客户机所有的请求都会经过代理服务器,所以如果在代理服务器上设置防火墙,则可以过滤一些不安全的信息,同时也方便管理。


清楚了代理服务器后,我们再来了解正向代理和反向代理的区别


正向代理:顾客:"服务员,我就要厨师A做的七彩红烧肉"; 服务员:"好嘞,我这就安排厨师A给您做!"


反向代理:顾客:"服务员,我要一份七彩红烧肉"; 服务员:"好嘞,我们的厨师B炒菜贼好吃!"


顾客就是客户机,服务员就是代理服务器,厨师们就是目标主机。正向代理就相当于客户机明确指定目标主机提供服务(目标主机被动接收请求)。反向代理就相当于客户机提供需求,代理服务器从一群目标主机中找一台去实现该需求(目标主机主动接收请求)。


现在开始配置Nginx的反向代理

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

第一步:

准备两个 tomcat 服务器,端口分别是 8081 和 8082,并分别修改 index 文件便于区分测试


第二步:

进入到 /usr/local/nginx/ 目录下,修改 Nginx 配置文件。upstream 定义每个设备的状态,server 配置服务,server_name 指定域名,proxy_pass 代理转发到那台设备上


第三步:

重启服务,在浏览器上输入不同的域名,会跳到对应的页面


Nginx 的反向代理其实是在做请求的转发,后台有多个 http 服务器提供服务,Nginx 的功能就是把请求转发给后面的服务器,并决定把请求转发给哪台服务器。


反向代理流程
浏览器访问 search.itdragon.com,通过本地 host 文件域名解析,找到 192.168.225.131 Nginx 虚拟主机,Nginx接收客户机请求,找到 server_name 为 search.itdragon.com的节点,再根据 proxy_pass 对应的 http 路径,将请求转发到upstream searchserver上,即端口号为8081的tomcat服务器。


全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

客户机访问 ---> 

search.itdragon.com ---> 

host ---> 

Nginx ---> 

server_name ---> 

proxy_pass ---> 

upstream---> tomcat




全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

负载均衡


负载均衡 在高性能的主机上分配更多的负载,在性能低的主机分配少一些的负载,充分利用主机的性能,将其服务器的总压力。Nginx 的 upstream 默认是以轮询的方式实现负载均衡,也可以分配权值。

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

第一步:

新增两个 tomcat 服务器,端口分别为 8083 和 8084,并分别修改 index 文件便于区分测试


第二步:

进入到 /usr/local/nginx/ 目录下,修改 Nginx 配置文件,在 pictureserver 内新增两个 server。重启服务。


负载均衡的配置是在反向代理的基础上修改的,所以请先完成反向代理的配置。




全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置

Nginx 总结


常见配置说明

全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置


1 Nginx 通过修改nginx.conf server_name配置,达到配置多台基于ip,基于域名的虚拟主机
2 Nginx 通过修改nginx.conf upstream 和 proxy_pass配置,达到反向代理效果
3 Nginx 通过修改nginx.conf upstream server 状态,达到负载均衡效果
4 代理服务器有提高客户端获取数据的速度,和方便管理设置防火墙的功能



全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置
全面介绍 Nginx 的反向代理 负载均衡 虚拟主机配置



学英语会编程|ITDragon博客

每周一、三、五更新
长按二维码关注