入门案例
1.需求说明
- 1.修改电脑的hosts文件
例如:nginx所在服务器ip地址www.aise.com
我们可以将host文件修改为这个访问路径
,可以用switchhosts这个软件来修改,
如果没有权限可以修改权限
- 2.修改nginx.conf
nginx运行原理
nginx可以配置多个虚拟服务器,每个server可以通过配置参数监听不同的端口和域名,只要满足端口和域名请求,就会交给一个固定的server处理,我们可以在server编写逻辑,实现转发,负载均衡。 - 配置nginx.conf
在http{}中间,添加一个虚拟服务器server的配置
自定义server实现转发
server{}:表示我们要配置的虚拟服务器一个
listen:表示当前这个server要监听的端口,多个server可以同时监听一个端口。
server_name:表示当前端口进入的请求,使用的域名
当请求进入nginx同时满足server的这两个属性配置,就说明这个请求,要交给这个server处理
location: 请求处理的具体逻辑
/:属于location用来匹配uri地址的一个匹配规则。/表示请求uri以/开始,所以这是一个通配
proxy_pass:代理路径,满足location匹配的将会在proxy_pass代理路径的服务器进行真正具体的访。
locaotion匹配规则
访问到nginx的请求,可以对server做出判断端口监听和域名匹配,一旦成功,就要根据uri地址比对localtion匹配规则。
1.1匹配规则
精确匹配:uri地址必须等于location定义的值
location =/image
有修饰的字符串前缀匹配:uri地址以前缀结尾
location =^~/image
无修饰的字符串前缀匹配:uri地址以前缀开始
location /image
和有修饰的区别在于 有修饰的优先级高于无修饰的字符串前缀匹配,并且有修饰的字符串一旦匹配到,将停止向下匹配 非有修饰的字符串前缀匹配。
- 不同的匹配规则存在使得同一个server可以存在多个location
正则匹配
不区分大小写的正则
例如:location ~*正则表达式
区分大小写正则
例如:location ~正则表达式
优先级判断
- 根据规则介绍顺序,优先级从上到下
精确匹配>有修饰的前缀>无修饰的前缀>正则匹配>通配 - 同一种匹配规则有包含关系时
字符串前缀匹配有包含关系时,以最大前缀匹配长度为优先级最高来判断
正则有包含关系时,配置在上的location的优先级高
location =/image {return 201}
location /image {return 202}
location ^~/image {return 203}