https服务器配置完成后,域名访问默认匹配至443端口,如果想同时通过https域名网址来请求多个对外服务,就需要在Nginx配置里来对请求进行规则判断,并匹配至相应的内部端口,这也是Nginx反向代理强大功能之一,本文主要是自己配置过程的记录,欢迎讨论和指正。
Nginx匹配规则
为了实现预期功能,需要在Nginx配置文件下,对443端口添加多个location匹配规则,规则说明如下:
模式
含义
location = /uri
= 表示精确匹配,只有完全匹配上才能生效
location ^~ /uri
^~ 开头对URL路径进行前缀匹配,并且在正则之前。
location ~ pattern
开头表示区分大小写的正则匹配
location ~* pattern
开头表示不区分大小写的正则匹配
location /uri
不带任何修饰符,也表示前缀匹配,但是在正则匹配之后
location /
通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default
多个 location 配置的情况下匹配顺序为:
首先精确匹配 =
其次前缀匹配 ^~
其次是按文件中顺序的正则匹配
然后匹配不带任何修饰的前缀匹配。
最后是交给 / 通用匹配
当有匹配成功时候,停止匹配,按当前匹配规则处理请求
总结:所以需求实现的关键,在于利用不同的匹