① NGINX简介:
Nginx是一个http服务器,是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,更新完配置后可以不用重启服务就可以重新加载配置,只需要执行该命令:nginx -s reload
官方文档导航:NGINX Reverse Proxy | NGINX Plus
② Nginx能干什么?
一、作为一个 http服务器:
Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
二、虚拟主机,可以实现一台服务器虚拟出多个网站,基于配置进行操作。
①基于端口:使用不同的端口实现虚拟出多个网站。
②基于域域名:使用不同域名实现虚拟出多个网站。
三、代理服务,负载均衡
1、为什么需要代理服务、负载均衡呢?
①当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做代理。
②通过多台服务器进行平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
2、代理是什么呢?有哪几种类型?
①代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
②代理的类型有正向代理、反向代理:
正向代理:正向代理的对象是客户端,客户端将发送的请求和制定的目标服务器都提交给代理服务器,然后代理服务器向目标服务器发起请求,并将获得的结果返回给客户端的过程。
常用nginx代理的场景如下:
1 为在防火墙内的局域网客户端提供访问Internet的途径,如google网站
2 可以做缓存,加速访问资源
3 对客户端访问授权,上网进行认证
4 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理:反向代理的对象就是服务器,它的作用现在是代替服务器接受请求,然后再将请求转发给后端服务器。
③ 应该怎样使用呢?
nginx的安装:
直接yum进行安装
yum -y install nginx //安装nginx
systemctl start nginx.service //启动nginx
systemctl enable nginx.service //开机自启
①:重定向
使用rewrite对域名返回302重定向
重定向文件在nginx.conf中进行配置
flag标志位配置解释:
rewrite 后面可以加flag,flag标记有:
last 相当于Apache里的[L]标记,表示完成rewrite
break 终止匹配, 不再匹配后面的规则
redirect 返回302临时重定向 地址栏会显示跳转后的地址
permanent 返回301永久重定向 地址栏会显示跳转后的地址
server {
listen 80;
server_name www.btyuit.com;
rewrite ^/(.*)$ http://www.b.com/$1 permanent;
}
首先在192.168.17.154这台主机上安装好nginx,再在/etc/hosts和要访问的客户端里添加好配置。
192.168.17.154 www.btyuit.com
192.168.17.155这台主机安装tomcat服务,tomcat服务怎么安装,可以百度一下。
测试,访问www.btyuit.com直接会跳转到你指定的网站 。
使用return (redirect)返回301重定向
在nginx.conf配置完后进行重新加载配置 :nginx -s reload
输入www.btyuit.com会直接跳转到http://192.168.17.155:8080就是tomcat的服务页面
②负载均衡:
Nginx负载均衡分发策略:
Nginx 的 upstream目前支持的分配算法:
1)、轮询 ——1:1 轮流处理请求(默认)
每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。
轮询方式是Nginx负载默认的方式,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动跳过该台服务器。
upstream dceshi-server {
server localhost:8080;
server localhost:8081;
}
2)、权重 ——you can you up,no can no bi bi。
通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后8081服务的访问比率会是8080服务的二倍。
upstream cs-server {
server localhost:8080 weight=1;
server localhost:8081 weight=2;
}
3)、ip_哈希算法
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。
pstream cs-server {
ip_hash;
server localhost:8080 weight=1;
server localhost:8081 weight=2;
}
学如逆水行舟,不进则退!!!!