1:安装配置参考:http://www.seaxiang.com/blog/linux-nginx
二:nginx操作命令都是在进入nginx的目录下的sbin中,如/usr/local/nginx/sbin
1): ./nginx -v 查看版本号
2) : ./nginx -s stop 关闭nginx
3): ./nginx //启动nginx
ps -ef | grep nginx
4): nginx的配置文件来/nginx/conf/nginx.conf
不重启nginx重新加载配置文件 ./nginx -s reload
三:nginx的配置文件(/nginx/conf/nginx.conf)
1)第一部分全局快
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令
ps: worker_processes 1; 值越大支持并发处理量也越多
2)第二部分 events块
涉及指令主要影响Nginx服务器与用户网络连接
ps: worker_connections 1024; 支持的最大连接数
3)第三部分 http块 *****
1》http全局块 :文件引入,MIME-TYPE定义,日志自定义,连接超时时间,单链接请求数上限等。
2》server块
四:配置实例-反向代理
1> 转发 访问代理服务器转发到其他服务器上
ps location / { proxy_pass http://127.0.0.1:8080;}
访问192.168.17.129:80 =》 locahost:8080
若果是静态资源只需修改root:
2> 根据访问路径跳转到不同的端口的服务器中,ngin监听端口为9001
ps: http://127.0.0.1:9001/edu 跳转到 127.0.0.1:8080
http://127.0.0.1:9001/vod 跳转到 127.0.0.1:8081
server {
listen 9001;
server_name localhost;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081
}
}
五:负载均衡
1》策略:每个请求按时间次序逐一分配到不同服务器。down机自动剔除
2》权重 weight 代表权重默认为一,权重越高被分配机率越高
3》ip_hash ;每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器。可以解决session的问题
4》fair 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstreat myserver{
【ip_hash】
server 192.177.12.127:8080;
server 192.177.12.127:8081;
【fair】
}
server {
location / {
proxy_pass http://myserver;
}
六:动静分离
分离的是静态请求和动态请求
1:静态资源和动态资源分别部署不同位置
2:放在一起根据路径来匹配
七:高可用的Nginx(集群)
keepalived安装完之后在/etc文件中有keepalived目录有keepalived.conf;1
global_defs: router_id LVS_DEVELBACK //访问主机名字 在vi /etc/hosts中查看设置;
2:vrrp_script chk_http_port{
script "/脚本路径.sh"
interval 2 # 检测脚本执行的间隔
weight 2 # 权重
}
3:vrrp_instance VI_1
state MASTER # 主服务器master,备份叫backup
interface ens33 #网卡名称 ifconfig查看
virtual_router_id 51 #主备需要相同值
priority 100 #主备优先级
advert_int 1
virtual_ipaddress {
182.182.12.32 //vrrp H虚拟地址可以是多个
}
脚本
https://www.cnblogs.com/rexcheny/p/10778567.html
八:原理
1:一个master和多个worker的好处
1)有利于nginx -s reload的热部署操作
2)每个worker是独立的进程。一个worker出问题,不影响其他worker的争抢,避免请求中断
2:设置多少worker合适
worker数等于Cpu数量
3:worker的连接数worker_connection
一个请求占用worker的连接数?
2个(静态资源)或者4个(动态资源)
最大并发数
worker_connections*worker_processes/2 (静态资源)
worker_connection*worker_processes/4 (动态资源)