一、Nginx介绍
1、什么是nginx?
Nginx(engine x)是一个web服务器、反向代理服务器,C语言开发诞生于俄罗斯
2、作用:
反向代理:nginx代替tomcat接受请求
负载均衡:把请求平均分给多台tomcat
动静分离:把项目中的静态资源交给nginx处理
二、Nginx安装和启动
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、启动和关闭
启动:
./nginx
关闭:./nginx -s stop
重写加载配置文件:./nginx -s reload
三、负载均衡
1、nginx的6种负载均衡策略?
轮询 默认就是这个
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
#定义
upstream mycat{
server localhost:8080;
server localhost:8090;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://mycat; #引用
#root html;
index index.html index.htm;
}
weight 权重
权重数值越大,在被访问的概率越大,下面这个分别是20%,80%。
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.
upstream mycat{
server localhost:8080 weight=1;
server localhost:8090 weight=4;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://mycat;
#root html;
index index.html index.htm;
}
ip_hash 根据ip分配
ip_hash 如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream mycat{
ip_hash;
server localhost:8080;
server localhost:8090;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://mycat;
#root html;
index index.html index.htm;
}
url_hash) 根据url分配(依赖第三方)
根据请求的url的hash值将请求分到不同的机器中,后台服务器为缓存的时候效率高。
upstream mycat{
hash $request_uri;
server localhost:8080;
server localhost:8090;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://mycat;
#root html;
index index.html index.htm;
}
还有两个分别是
least_conn 最少链接数
fair 响应时间