1、Nginx介绍
1.1什么是Nginx
Nginx(engine x)是一个web服务器、反向代理服务器,由c语言开发。
1.2Nginx作用
正向代理
所谓正向代理就是代理服务器替代访问方(用户)去访问目标服务器(服务器),列如访问外网时所用的vpn就是一种正向代理的模式。
反向代理
所谓反向代理就是代替服务器接受用户的请求,从目标服务器中取得用户的需求资源,然后发送给用户(Nginx代替tomcat接受请求)
负载均衡
数据流量分摊到多个服务器上执行,减轻每台服务器的压力,多台服务器共同完成工作任务,从而提高了数据的吞吐量(把请求平均分配给多台tomcat)。
动静分离
把项目中的静态资源交给nginx去处理
动静分离配置文件
server{
listen 80;
server_name localhost;
location ~* \.(gif|jpg|png|jpeg)${
root /usr/upload/images;
}
}
2、Nginx安装与启动
2.1安装步骤
1、安装
1)安装c语言环境
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
2)解压安装包
cd /usr/upload
tar -zxvf nginx-1.10.0.tar.gz
3)设置安装目录
cd nginx-1.10.0
./configure --prefix=/usr/local/nginx
4)编译并安装
make && make install
2、目录结构
conf:配置文件
html:静态页面
logs:日志
sbin:启动脚本
3、启动和关闭
cd sbin
启动:./nginx
关闭:./nginx -s stop
重写加载配置文件:./nginx -s reload
3、反向代理
3.1 配置文件的配置内容
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
4、负载均衡
4.1 配置文件的配置内容
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;
}
}
4.2 常问Nginx的六种负载均衡面试题
1、nginx的6种负载均衡策略?
轮询 默认
weight 权重(比例)
ip_hash 根据ip分配
url_hash 根据url分配
least_conn 最少链接数(谁闲转发给谁(服务器))
fair 响应时间(响应时间短分配给谁)
2、如何防止session丢失?(在理想状态下 ip_hash可以解决)
ip_hash:如果tomcat1挂了,仍然会访问tomcat2
session复制:多台tomcat时,复制session非常耗费资源
redis:redis和session都是k、v,都能设置过期时间