Nginx初识
一、几个问题?
1.1 Nginx的作用、应用场景?
路由转发:将不同的请求转到到后端不同的服务进程。 负载均衡:将同一个请求分发到服务的不同实例。 静态服务器:存放静态的js、图片、视频、css、html等。
1.2 正向代理和反向代理?
正向代理是客户端代理,比如客户端通过配置一个代理服务器的地址,来访问原本不能直接访问的地址,被访问的资源有可能无法感知到客户端,正向代理一般和客户端在一个局域网(不绝对)作用一般如下:
1.访问原来无法访问的资源,如google,
2.对客户端访问授权,上网进行认证,
3.代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理是服务端代理,客户端不需要配置反向代理服务器地址,反向代理服务器背后可能隐藏了很多真实的服务器,反向代理服务器对这些服务器做负载均衡、路由、安全保护等功能,反向代理一般和服务器在一个局域网(不绝对)。
1.路由转发
2.负载均衡
3.保证内网( 服务器) 安全
二、安装
sudo wget http://nginx.org/download/nginx-1.14.2.tar.gz
sudo tar -zxvf nginx-1.14.2.tar.gz
//编译
cd nginx-1.14.2/
sudo ./configure
sudo make
sudo make install
//查找编译后的命令,默认在/usr/local/nginx
whereis nginx
intellif@master:/opt/nginx/nginx-1.14.2$ whereis nginx
nginx: /usr/local/nginx
cd /usr/local/nginx/sbin
sudo ./nginx
三、Nginx常见命令
3.1 启动停止
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
四、简单实战
4.1 配置静态资源服务器
修改nginx配置文件,在server节点下面添加如下内容:
location /image/ {
root /data/static/;
autoindex on;
}
如上配置之后,在/data/static下面创建一个image目录,在目录里面放一个a.jpg文件,再访问路径:http://ip/image/1.jpg,就可以展示图片了。注意location后面的/image/,一定要在root所指的路径下面创建一个这样的路径才行,刚开始我理解错了,这样访问http://ip/image/gp_1.jpg没错,但是我直接把图片放在了/data/static下面,但是是不对的,这只是一个root路径,下面可以做很多划分,比如下面可能还有image1,image2,这样前端就可以通过url映射到不同的路径了。
4.2 配置负载均衡
修改配置文件,在server节点下面添加内容,意思是前端的/balance路径映射到一个balanceServer,
location /balance {
proxy_pass http://balanceServer;
index index.html index.htm;
}
配置balanceServer,在server节点之外添加下面内容,注意不能写到server里面,可以写在server前面,
//下面表示会在2台设备之前做负载均衡,52的权重是3,大概75%的请求会到52服务器,25%的请求会到53服务器
upstream balance {
server 192.168.13.52:8080 weight= 3;
server 192.168.13.53:8080;
}
backup( 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。)
down( 表示单前的server暂时不参与负载)
upstream myServer {
server 192.168.72.49:9090 down;
server 192.168.72.49:8080 weight= 2;
server 192.168.72.49:6060;
server 192.168.72.49:7070 backup;
}
4.3 路由配置
路由配置和前面的静态服务器配置差不多,都是利用location来配置
location ~/servera {
proxy_pass http://192.168.13.52:8080;
}
location ~/serverb {
proxy_pass http://192.168.13.53:8080;
}
前端通过http://ip/servera,或者http://ip/serverb来访问。
五、负载策略
5.1 轮询策略
upstream balance {
server 192.168.13.52:8080;
server 192.168.13.53:8080;
}
5.2 加权轮询
upstream balance {
server 192.168.13.52:8080 weight= 3;
server 192.168.13.53:8080;
}
5.3 最少连接数策略
upstream balance {
least_conn;
server 192.168.13.52:8080 weight= 3;
server 192.168.13.53:8080;
}
5.4 Ip Hash策略
该策略可以实现某一客户端的请求固定转发至某一服务器,保证session不会因为负载均衡失效
upstream balance {
ip_hash;
server 192.168.13.52:8080 weight= 3;
server 192.168.13.53:8080;
}
六、参考