Nginx常用命令
- 在没有配置环境变量情况下,使用Nginx操作命令前提条件:必须进入到nginx的目录
默认:/usr/local/nginx/sbin - 查看nginx的版本号
1 | ./nginx -v |
- 启动nginx
1 | ./nginx |
- 关闭nginx
1 | ./nginx -s stop |
- 重新加载nginx
1 | ./nginx -s reload |
Nginx配置文件
- nginx配置文件位置
1 | /usr/local/nginx/conf/nginx.conf |
- nginx配置文件组成
(1) nginx配置文件由三部分组成
- 全局块
从配置文件开始到events之间的内容,主要是设置一些会影响nginx服务器整体运行的配置指令。
1 | user nginx; |
- Events块
影响nginx服务器与用户网络连接情况。
1 | events { |
- http块
nginx服务器配置最频繁的地方,其中他还包括http全局块,以及/etc/nginx/conf.d/*.conf
Nginx反向代理实例
请求本地127.0.0.1:9001,通过nginx代理转发到本地8001端口
- 配置文件
1 | server{ |
使用nginx反向代理,根据访问的路径跳转到不同端口的服务中,nginx监听端口味9001
访问 127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8081
访问 127.0.0.1:9001/vod/ 直接跳转到127.0.0.1:8082
1 | #新增 |
补充location书写格式
1 | location [=,~,~*,^~] uri{ |
说明:
- =:用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
- ~:用于表示uri包含正则表达式,并且区分大小写。
- ~*:用于表示uri包含正则表达式,并且不区分大小写。
- ^~:用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。
Nginx负载均衡
配置文件
1 | http{ |
资源分配方式:
- 轮询(默认)
每个请求按时间逐一分配到不同的后端服务器,如果后端服务器宕机,就能自动剔除;
- wight
按照权重分配,权重值越高则陪分配的客户端越多。
- ip_hash
每个请求访问ip的hash结果分配,这样每个访客固定访问一个后缀服务器,可以解决session问题
fair(第三方)
按照后端服务器的响应时间来分配请求,响应时间短的优先分配。
Nginx高可用配置
使用工具keepalived
具体操作流程:Nginx+Keepalived实现高可用