nginx的基本使用命令
./nginx 启动
./nginx -s stop 快速停止
./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置
nginx的目录结果
- conf
- 用来存放配置文件相关
- html
- 用来存放静态文件的默认目录 html、css等
- sbin
- nginx的主程序
- logs
- 用来存放日志文件
Nginx配置与应用场景
最小配置
- worker_processes
- 默认为1,表示开启一个业务进程
- worker_connections
- 单个业务进程可接受连接数
- include mime.types;
- 引入http mime类型
- default_type application/octet-stream;
- 如果mime类型没匹配上,默认使用二进制流的方式传输。
- sendfile on;
- 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。
- 未开启sendfile
- 开启后
- keepalive_timeout
- 超时时间
- server
- 虚拟主机配置
-
server { listen 80; 监听端口号 server_name localhost; 主机名 location / { 匹配路径 root html; 文件根目录 index index.html index.htm; 默认页名称 } error_page 500 502 503 504 /50x.html; 报错编码对应页面 location = /50x.html { root html; } }
- 原本一台服务器只能对应一个站点,通过虚拟主机技术可以虚拟化成多个站点同时对外提供服务
- servername匹配规则
- 我们需要注意的是servername匹配分先后顺序,写在前面的匹配上就不会继续往下匹配了。
- 完整匹配
- 我们可以在同一servername中匹配多个域名
-
server_name vod.mmban.com www1.mmban.com;
- 通配符匹配
-
server_name *.mmban.com
-
- 通配符结束匹配
-
server_name vod.*;
-
- 正则匹配
-
server_name ~^[0-9]+\.mmban\.com$;
-
反向代理
反向代理就是代理服务端,是客户感受不到的。使用proxy_pass进行配置
location / {
proxy_pass http://atguigu.com/;
}
基于反向代理的负载均衡
upstream httpd {
server 192.168.44.102:80;
server 192.168.43.103:80;
}
负载均衡策略
- 轮询
- 默认情况下使用轮询方式,逐一转发,这种方式适用于无状态请求。
- weight(权重)
- 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
-
upstream httpd { server 127.0.0.1:8050 weight=10 down; server 127.0.0.1:8060 weight=1; server 127.0.0.1:8060 weight=1 backup; }
- down:表示当前的server暂时不参与负载
- weight:默认为1.weight越大,负载的权重就越大。
- backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
- ip_hash
- 根据客户端的ip地址转发同一台服务器,可以保持回话。
- least_conn
- 最少连接访问
- url_hash
- 根据用户访问的url定向转发请求
- fair
- 根据后端服务器响应时间转发请求