nginx的安装与配置详解
#####################################
一、安装:
下载地址:https://nginx.org/en/download.html
在windows中安装后如
windows上kill掉所有nginx进程:
#在windows上的cmd终端上执行
taskkill /f /im nginx.exe
# Nginx重新读取配置的命令
nginx -s reload
二、配置文件:conf/nginx.conf
三、标准URI:
URL的格式由下列三部分组成:
- 第一部分是协议(或称为服务方式);
- 第二部分是存有该资源的主机IP地址(有时也包括端口号);
- 第三部分是主机资源的具体地址。
具体URI的格式如下:
[协议名]://[用户名]:[密码]@[服务器地址]:[服务器端口号]/[路径]?[查询字符串]#[片段ID]
登录信息(用户名:密码)
指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份认证)。此项是可选项。
服务器地址
使用绝对 URI 必须指定待访问的服务器地址。地址可以是类似 hackr.jp 这种 DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址 名,还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。
服务器端口号
指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动使用默认端口号。
带层次的文件路径
指定服务器上的文件路径来定位特指的资源。这与 UNIX 系统的文件目录结构相似。
查询字符串
针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数。此项可选。
片段标识符
使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个位置)。但在 RFC 中并没有明确规定其使用方法。该项也为可选项。
配置详解:
server指令模块:
nginx有两层指令来匹配请求 URI 。第一个层次是 server 指令,它通过域名、ip 和端口来做第一层级匹配;第二层是当找到匹配的 server 后就进入此 server 的 location 匹配。
location指令模块: nginx用请求URI中的路径path部分与location中的配置
做匹配,是nginx中最关键的模块之一,属于请求级别配置
1. location = # 精准匹配
2. location ^~ # 带参前缀匹配
3. location ~ # 正则匹配(区分大小写)
4. location ~* # 正则匹配(不区分大小写)
5. location /a # 普通前缀匹配,优先级低于带参数前缀匹配。
6. location / # 任何没有匹配成功的,都会匹配这里处理
(1) “=” ,精确匹配。内容要同表达式完全一致才匹配成功 (2) “~”,执行正则匹配,区分大小写。 (3)“~*”,执行正则匹配,忽略大小写。 (4)“^~”,前缀匹配,表示普通字符串匹配上以后不再进行正则匹配。 (5)不加任何规则时,前缀匹配,默认是大小写敏感,相当于加了“~”与“^~”。 (6)“@”,nginx内部跳转。
location匹配顺序,序号越小优先级越高:=
, ^~
,~ | ~*
, 最长前缀匹配
, /
默认情况下,nginx采用的是轮询策略,nginx还提供了其他几种常用的负载均衡配置
nginx负载均衡配置:
1、轮询策略,是nginx的默认策略
# http模块中:
upstream lunxun { server localhost:8081; server localhost:8082; } #server模块中: location / { #转发到负载服务上 proxy_pass http://lunxun; }
- 在轮询中,如果服务器down掉了,会自动剔除该服务器。
- 缺省配置就是轮询策略。
- 此策略适合服务器配置相当,无状态且短平快的服务使用。
2、ip_hash策略:
upstream myproject { # ip_hash指令,将同一用户引入同一服务器。防止session问题 ip_hash; server 10.10.10.11 fail_timeout=60s; server 10.10.10.12; }
##################################################
igoodful@qq.com