1. Nginix基本配置框架
a. 配置的几个顶级指令:
b. 配置文件:nginx安装目录下的 conf 文件夹内 nginx.conf 文件

c. 基本结构如下:
user nobody; # a directive in the 'main' context events { # configuration of connection processing } http { # Configuration specific to HTTP and affecting all virtual servers server { # configuration of HTTP virtual server 1 location /one { # configuration for processing URIs with '/one' } location /two { # configuration for processing URIs with '/two' } } server { # configuration of HTTP virtual server 2 } } stream { # Configuration specific to TCP and affecting all virtual servers server { # configuration of TCP virtual server 1 } }
2. 设置虚拟服务器
a. 基本结构:
http { server { # Server configuration } }
b. server基本机构:
server { listen 80;
server_name localhost; # The rest of server configuration
location / {
proxy_pass http://www.example.com;
} }
c. location配置:
location指令有两种类型的参数:前缀字符串(路径名)和正则表达式。
对于要匹配前缀字符串的请求URI,必须以前缀字符串开头:
location /path/ { ... }
正则表达式之前是区分大小写匹配的波形符号(~),或者不区分大小写匹配的波形符号(~*):
location ~ \.html? { ... }
请求处理方式:
- 测试所有URI的前缀字符串。
- =(等号)修饰符定义了URI和前缀字符串完全匹配。如果找到完全匹配,则搜索停止。
- 如果^~(插入符号)修饰符预先添加最长匹配前缀字符串,则不会检查正则表达式。
- 存储最长匹配的前缀字符串。
- 根据正则表达式测试URI。
- 断开第一个匹配的正则表达式并使用相应的位置。
- 如果没有正则表达式匹配,则使用与存储的前缀字符串相对应的位置。
location上下文可以包含定义如何解析请求的指令:
server { location /images/ {
# 静态文件文件系统路径 root /data; } location / {
# 代理服务配置 proxy_pass http://www.example.com; } }
d. 重写URI请求
可以通过使用rewrite指令在请求处理期间多次修改请求URI,您可以在location 和 server上下文中包含多个rewrite指令。
该指令具有一个可选参数和两个必需参数。 第一个(必需)参数是请求URI必须匹配的正则表达式。 第二个参数是用于替换匹配URI的URI。 可选的第三个参数是可以停止进一步重写指令的处理或发送重定向(代码301或302)的标志。例如:
server { ... rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last; rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra last; return 403; ... }
此示例配置区分两组URI(正则匹配知识请自行补充,代码中颜色对应匹配,对号入座)。 诸如/download/some/media/file之类的URI更改为/download/some/mp3/file.mp3。由于最后一个标志,所以跳过后续指令(第二次rewrite和return指令),但NGINX继续处理该请求,该请求现在具有不同的URI。类似地,诸/download/some/audio/file的URI被替换为/download/some/mp3/file.ra。 如果URI与rewrite指令不匹配,则NGINX将403错误代码返回给客户端。
有两个中断处理重写指令的参数:
- last- 停止执行当前服务器或位置上下文中的重写指令,但是NGINX会搜索与重写的URI匹配的位置,并且应用新位置中的任何重写指令(URI可以再次更改,往下继续匹配)。
- break- 像- break指令一样,在当前上下文中停止处理重写指令,并取消搜索与新URI匹配的位置。新位置(- location)块中的- rewrite指令不执行。
更多配置:重写http响应、错误处理、状态码配置、变量等:
参考:https://www.yiibai.com/nginx/nginx-web-server.html#article-start
 
                    
                     
                    
                 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号