目录
一,Nginx的介绍
什么是naginx?
Nginx(engine x)是轻量级的Web 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,具备开源、高性能的优势。C语言开发的。
特点:反向代理 负载均衡 动静分离
负载均衡策略:
负载均衡策略 | 说明 |
---|---|
轮询 | 默认 |
weight | 权重方式 |
ip_hash | 依据ip分配方式 |
least_conn | 按连接数 |
fair | 按响应时间 |
url_hash | 依据URL分配 |
二,Nginx的安装和启动
安装
1)安装(下载网站在末尾)
- 安装c语言环境
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
- 解压安装包
tar -zxvf nginx-1.10.0.tar.gz
- 配置nginx安装包
cd /usr/upload
tar -zxvf nginx-1.10.0.tar.gz
- 编译并安装
make && make install
2)目录结构
├── client_body_temp # 临时目录
├── conf # Nginx所有配置文件的目录
│ ├── nginx.conf # Nginx主配置文件
├── fastcgi_temp # fastcgi临时数据目录
├── html # Nginx默认站点目录
│ ├── 50x.html # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
│ └── index.html # 默认的首页文件
├── logs # Nginx日志目录
│ ├── access.log # 访问日志文件
│ ├── error.log # 错误日志文件
│ └── nginx.pid # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp # 临时目录
├── sbin # Nginx命令目录
│ └── nginx # Nginx的启动命令
├── scgi_temp # 临时目录
└── uwsgi_temp # 临时目录
启动
启动:./nginx
关闭:./nginx -s stop
重写加载配置文件:./nginx -s reload #可以不关闭nginx的情况下更新配置文件
三, Nginx代理tomcat
1)在linux中安装两台tomcat
2) 修改tomcat的配置文件,将端口进行修改:
测试
反向代理?
代理服务分为正向代理和反向代理。
1)正向代理:是一个位于客户端和原始服务器(origin server)之间的服务器。并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端。
所谓的正向代理就是代理服务器替代访问方【用户】去访问目标服务器【服务器】。
2)反向代理:以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。nginx代替tomcat接受请求
所谓的反向代理就是代替服务器接受用户的请求,从目标服务器中取得用户的需求资源,然后发送给用户。
修改nginx的配置:
server{
listen 80;
server_name localhost;location / {
proxy_pass http://127.0.0.1:8080;
}
}
启动nginx和两个tomcat
测试
负载均衡?
负载均衡:就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,多台服务器共同完成工作任务。
修改nginx的配置:
upstream myTomcats{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
server{
listen 80;
server_name localhost;location / {
proxy_pass http://myTomcats;
}
}
启动nginx和两个tomcat
测试:
默认的负载均衡策略是轮询策略。
负载均衡策略一共有六个。
负载均衡策略 | 说明 |
---|---|
轮询 | 默认 |
weight | 权重方式 |
ip_hash | 依据ip分配方式 |
least_conn | 按连接数 |
fair | 按响应时间 |
url_hash | 依据URL分配 |
weight :
修改nginx的配置:8080的是60%的几率访问,8090的是40%的几率访问
upstream tomcats {
server 127.0.0.1:8080 weight=3;
server 127.0.0.1:8090 weight=2;
}
ip_hash:
修改nginx的配置:根据客户端的ip通过hash算法得到的数与tomcat的数量取余,固定的访问一只猫。
upstream tomcats {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
least_conn :
修改nginx的配置:把请求转发到连接数较少的后端服务器
upstream tomcats {
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
fair :
修改nginx的配置:实现响应时间短的优先分配,需要第三方的插件。
upstream tomcats {
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:8090;fair;
}
url_hash :
修改nginx的配置:实现每一个url定向到同一个后端服务器。
upstream tomcats {
hash $request_uri;
server 127.0.0.1:8080;
server 127.0.0.1:8090;fair;
}
如何防止session丢失?
ip_hash:如果tomcat1挂了,仍然会访问tomcat2
session复制:多台tomcat时,复制session非常耗费资源
redis:redis和session都是k、v,都能设置过期时间
动静分离?
动静分离:把项目中的j是,css等静态资源交给nginx处理,节省用户的访问时间。
修改nginx的配置:实现每一个url定向到同一个后端服务器。
server{
listen 80;
server_name localhost;location ~* \.(gif|jpg|png|jpeg)${
root /usr/upload/images;
}
}
官方网站:http://nginx.org/