Nginx 语法结构和配置

Nginx 配置文件通常包含多个上下文(context),它们按照特定的层次结构排列。主要的上下文包括:
反向代理如何配置:http://t.csdnimg.cn/8OzCk
全局块 (nginx.conf 全局配置文件):
包含影响整个 Nginx 服务器运行的基本配置,例如工作进程数、错误日志路径等。
events 块:
定义处理连接事件的方法,如网络连接的处理模型。
http 块:
这是 Nginx 处理 HTTP 和 HTTPS 请求的主要上下文。
在 http 块内可以有 server 块、upstream 块、以及定义各种HTTP模块参数的配置项。
server 块:
代表一个独立的虚拟主机或者服务实例,通过 listen 指令监听指定的 IP 地址和端口,或通过 server_name 指令匹配请求的域名。
在 server 块中,可以进一步配置 location 块和其他与该虚拟主机相关的设置。
location 块:
用于更细致地根据请求的 URL 路径来处理不同的请求。
支持精确匹配、前缀匹配、正则表达式匹配等方式,并且具有优先级顺序。
Server 下的配置示例

server {
    listen       80; # 监听所有IPv4地址上的80端口
    server_name  example.com www.example.com; # 匹配请求的域名

    # 根目录配置
    root /var/www/example;
    index index.html index.htm;

    # 日志配置
    access_log /var/log/nginx/example.access.log;
    error_log /var/log/nginx/example.error.log;

    # SSL 配置(如果启用HTTPS)
    # listen 443 ssl;
    # ssl_certificate /path/to/cert.pem;
    # ssl_certificate_key /path/to/key.pem;

    # location 示例
    location / {
        try_files $uri $uri/ /index.html; # 如果请求的是目录,则返回/index.html
    }

    location /api {
        proxy_pass http://backend_server:8080; # 将/api开头的请求转发到后端应用服务器
        include proxy_params; # 可能包含代理相关配置的外部文件
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; # PHP-FPM 的 socket 或者 TCP 端口
        fastcgi_index index.php;
        include fastcgi_params; # PHP 参数配置
    }
}

Location 后的语法详解
精确匹配:使用等号 = 来精确匹配某个 URL 路径,具有最高优先级。 


   location = /exact/path {
       # ...
   }
    

 前缀匹配:简单写法 location /prefix/ {},将匹配以 /prefix/ 开头的任何请求 


   location /images/ {
       alias /data/images/;
   }
   

正则表达式匹配:在字符串前添加 ~ 表示区分大小写的正则表达式匹配,添加 ~* 则表示不区分大小写的正则表达式匹配。 

   location ~ ^/regex-match/ {
       rewrite ^(.*)$ /new-path permanent;
   }
    

通用匹配:若没有指定匹配类型,默认为前缀匹配,且当其他匹配规则都不满足时作为最后的备选。 

   location / {
       # 默认的处理逻辑
   }
    

此外,在 location 块内部,可以设置诸如重定向、反向代理、内容处理(如FastCGI)等多种操作 

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值