在 nginx.conf
的 server
块中的 location / { }
部分,你可以配置许多不同的参数来控制如何处理进入的请求和响应。以下是一些常用的 location
块配置参数:
-
proxy_pass: 用于将请求代理到另一个服务器。例如:
proxy_pass http://backend_server;
-
proxy_set_header: 用于设置传递给代理服务器的请求头。例如:
proxy_set_header Host $host;
-
root: 定义请求资源的根目录路径。例如:
root /var/www/html;
-
alias: 用于替代请求中指定的路径。与
root
不同,alias
允许你指定一个不同的文件系统路径。例如:alias /path/to/alias/;
-
index: 定义默认索引文件的名称,当请求的是一个目录而不是一个具体的文件时,会尝试返回这个索引文件。例如:
index index.html index.htm;
-
try_files: 尝试按顺序提供文件,如果第一个文件不存在,则尝试下一个,依此类推。例如:
try_files $uri $uri/ /index.php?$args;
-
rewrite: 用于重写(重定向或重写)请求的URI。例如:
rewrite ^/oldpath/(.*)$ /newpath/$1 permanent;
-
location_modify: 在某些Nginx版本中可用,用于修改请求URI。
-
error_page: 定义当发生特定HTTP错误时应返回的错误页面。例如:
error_page 404 /404.html;
-
add_header: 向响应头添加字段。例如:
add_header Cache-Control "no-cache, no-store, must-revalidate";
-
expires: 设置资源的过期时间。例如:
expires 30d;
-
if: 基于条件执行配置块。请注意,
if
在Nginx中的使用是有争议的,因为它可能导致不可预测的行为。 -
limit_except: 仅对指定的HTTP方法应用配置。例如:
limit_except GET { deny all; }
-
autoindex: 如果设置为
on
,当请求的是一个目录且没有默认索引文件时,Nginx会生成一个目录列表。 -
add_trailing_slash: 自动在目录请求后添加斜杠。
-
internal: 标记一个位置仅供内部重定向和重写使用。
-
try_files_uri: 在
try_files
中使用$uri
变量。 -
ssl_verify_client: 当使用SSL时,指定是否验证客户端证书。
这些只是 location
块中可用的一些配置参数。Nginx的配置非常灵活,可以根据具体需求进行组合和调整。在配置时,请确保了解每个参数的作用,并在生产环境中进行充分的测试。