Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔·西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。
Nginx 应用场景:
1、http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
Nginx启动与访问
进入到Nginx目录下的sbin目录
输入命令启动Nginx
./nginx
启动后查看进程
ps aux|grep nginx
地址栏输入虚拟机的IP即可访问(默认为80端口)
关闭 nginx:
nginx -s stop或者./nginx -s quit
重启 nginx:
1、先关闭后启动。
2、刷新配置文件:
./nginx -s reload
配置虚拟主机
虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式。
端口绑定
(1)上传静态网站:
将前端静态页cart.html 以及图片样式等资源 上传至 /usr/local/nginx/cart 下
将前端静态页search.html 以及图片样式等资源 上传至 /usr/local/nginx/search 下
(2)修改Nginx 的配置文件:/nginx/conf/nginx.conf
server {
listen 81;
server_name localhost;
location / {
root cart;
index cart.html;
}
}
server {
listen 82;
server_name localhost;
location / {
root search;
index search.html;
}
}
(3)访问测试:
地址栏输入http://192.168.25.141:81 可以看到购物车页面
地址栏输入http://192.168.25.141:82 可以看到搜索页面
域名绑定
什么是域名:
域名(Domain Name),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。域名作为力所能及难忘的互联网参与者的名称。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。域名用于各种网络环境和应用程序特定的命名和寻址目的。通常,域名表示互联网协议(IP)资源,例如用于访问因特网的个人计算机,托管网站的服务器计算机,或网站本身或通过因特网传送的任何其他服务。世界上第一个注册的域名是在1985年1月注册的。
域名与IP绑定:
一个域名对应一个 ip 地址,一个 ip 地址可以被多个域名绑定。
本地测试可以修改 hosts 文件(C:\Windows\System32\drivers\etc)
可以配置域名和 ip 的映射关系,如果 hosts 文件中配置了域名和 ip 的对应关系,不需要走dns 服务器。
做好域名指向后,修改nginx配置文件
server {
listen 80;
server_name www.wlz.com;
location / {
root cart;
index cart.html;
}
}
server {
listen 80;
server_name www.wlz.com;
location / {
root search;
index search.html;
}
}
执行以下命令,刷新配置
[root@localhost sbin]# ./nginx -s reload
地址栏输入http://www.wlz.com/
.Nginx反向代理与负载均衡
什么是反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
首先我们先理解正向代理,如下图:
正向代理是针对你的客户端,而反向代理是针对服务器的,如下图
配置反向代理-准备工作
(1) 将网站首页页面部署到tomcat中(ROOT目录),上传到服务器。
(2)启动TOMCAT,输入网址http://192.168.25.141:8080可以看到网站首页
配置反向代理
(1)在Nginx主机修改 Nginx配置文件
upstream tomcat-portal {
server 192.168.25.141:8080;
}
server {
listen 80;
server_name www.wlz.com;
location / {
proxy_pass http://tomcat-portal;
index index.html;
}
}
(2)重新启动Nginx 然后用浏览器测试: www.wlz.com (此域名须配置域名指向)
负载均衡
什么是负载均衡
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
配置负载均衡-准备工作
(1)将刚才放有首页工程的tomcat复制两份,端口分别为8180 和8280 。
(2)分别启动这两个tomcat服务器的tomcat服务。
(3)为了能够区分是访问哪个服务器的网站,可以在首页标题加上标记以便区分。
配置负载均衡
修改 Nginx配置文件:
upstream tomcat-portal {
server 192.168.25.141:8080;
server 192.168.25.141:8180;
server 192.168.25.141:8280;
}
server {
listen 80;
server_name www.wlz.com;
location / {
proxy_pass http://tomcat-portal;
index index.html;
}
}
地址栏输入http://www.wlz.com/ 刷新观察每个网页的标题,看是否不同。
经过测试,三台服务器出现的概率各为33.3333333%,交替显示。
如果其中一台服务器性能比较好,想让其承担更多的压力,可以设置权重。
比如想让NO.1出现次数是其它服务器的2倍,则修改配置如下:
upstream tomcat-portal {
server 192.168.25.141:8080;
server 192.168.25.141:8180 weight=2;
server 192.168.25.141:8280;
}
经过测试,每刷新四次,有两次是8180
了解高可用
什么是高可用
nginx 作为负载均衡器,所有请求都到了 nginx,可见 nginx 处于非常重点的位置,如果nginx 服务器宕机后端 web 服务将无法提供服务,影响严重。
为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务 IP 并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务 IP 地址,这样的主服务器就开始再次提供负载均衡服务。