server {
listen 80;
server_name ~^(?<user>.+)\.example\.net$;
location / {
root /data/$user;
}
}
基本变量说明:
(?<user>.+):正则表达式捕获组,捕获用户名$user:使用捕获的用户名基本变量原理: Nginx 支持使用变量,变量可以在配置中使用。变量可以来自正则表达式捕获组、内置变量等。
| 变量 | 说明 | 示例 |
|---|---|---|
$host | 请求主机 | example.com |
$request_uri | 请求 URI | /index.html?q=test |
$uri | 当前 URI | /index.html |
$request_method | 请求方法 | GET |
$remote_addr | 客户端 IP | 192.168.1.1 |
$http_user_agent | 用户代理 | Mozilla/5.0 |
$http_referer | 请求来源 | https://example.com |
$args | 请求参数 | q=test |
$scheme | 请求协议 | http |
$server_name | 服务器名称 | example.com |
$server_port | 服务器端口 | 80 |
$server_protocol | 服务器协议 | HTTP/1.1 |
$status | 响应状态码 | 200 |
$body_bytes_sent | 发送的字节数 | 1024 |
$request_time | 请求处理时间 | 0.123 |
$upstream_addr | 上游服务器地址 | 192.168.1.2:80 |
$upstream_status | 上游服务器状态码 | 200 |
$upstream_response_time | 上游服务器响应时间 | 0.123 |
location / {
root /data/www;
add_header X-Request-URI $request_uri;
add_header X-User-Agent $http_user_agent;
}
示例说明:
add_header X-Request-URI $request_uri:添加请求 URI 响应头add_header X-User-Agent $http_user_agent:添加用户代理响应头示例原理: Nginx 支持使用变量,变量可以在配置中使用。变量可以来自内置变量、正则表达式捕获组等。
map $http_user_agent $is_mobile {
default 0;
~*Mobile 1;
}
server {
listen 80;
server_name ~^(?<user>.+)\.example\.net$;
location / {
root /data/$user;
add_header X-Is-Mobile $is_mobile;
}
}
自定义变量说明:
map:定义变量映射$is_mobile:自定义变量自定义变量原理:
Nginx 支持自定义变量,可以使用 map 指令定义变量映射。