学习目标:
nginx知识点总结
学习内容:
1、nginx基本的命令
2、nginx配置文件分析
3、反向代理
4、负载均衡
5、动静分离
6、nginx优化
基本命令
启动
./nginx
关闭
./nginx -s stop
修改完配置文件,加载
./nginx -s reload
配置文件分析:
主要分为三块
1)全局块
主要会设置一些影响nginx 服务器整体运行的配置指令,如下:
worker_processes 1; #work进程的数量
2)events块
主要影响 Nginx 服务器与用户的网络连接
events {
worker_connections 1024;#work进程最大连接数
}
3)http块
Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
http{
server {
location{
}
}
}
反向代理
正向代理代理的是客户端,反向代理代理的是服务器端,客户端访问一个服务器端的代理。
server{
listen 80;
server_name 127.0.0.1;
location / {
proxy_pass http://localhost:8080; #tomcat
index index.html index.htm;
}
}
测试步骤:
浏览器访问http://127.0.0.1,nginx会方向代理找到localhost:8080,tomcat的界面,反向代理的tomcat的服务器;
负载均衡
负载均衡即是将负载分摊到不同的服务单元既保证服务的可用性。
http{
upstream server1{
ip_hash; #负载策略
server 服务1 weight=1;
server 服务2 weight=1;
}
server{
location / {
proxy_pass http://server1 #配置上面定义的负载代理
proxy_connect_timeout 10;
}
}
}
负载策略:
1)轮询(默认)
2)weight 权重,数字越高响应越多
3)ip_hash 按照ip的hash进行分配响应服务
4)fair 按后端服务器的响应时间来分配,时间短的先分配
动静分离
将静态资源可以直接放到nginx上,通过访问nginx的连接直接获取资源,不必访问后端的tomcat服务
ningx优化
1、nginx是master-workers工作机制,每个worker都是一个独立的进程,互相不影响,采用了io多路复用的机制,为了把cpu的性能发挥极致,worker数量最好与cpu核数一致
worker_processes 8; #cpu核数
2、nginx最大连接数应该是work_connections * work_processes,但是普通的静态访问会占用2个连接,反向代理http会占用4个连接,所以nginx最大连接数是静态的除以2,动态的除以4
nginx可以利用keepalive配置高可用,具体参考其他资料,如:
https://www.jianshu.com/p/a6b5ab36292a