nginx的http块配置项有哪些?
Main配置项

- worker_processes:nginx的worker进程数,默认为auto,表示根据系统CPU核数来设置。
- worker_connections:每个worker进程能够同时处理的最大连接数,默认为512。
- keepalive_timeout:长连接的超时时间,即客户端与服务器保持连接的时间,超过该时间则关闭连接。
- server_names_hash_bucket_size:用于存储虚拟主机的hash桶大小,默认为32或64,根据服务器的虚拟主机数量来设置。
- client_header_buffer_size:nginx服务器接收客户端请求头的缓冲区大小,默认为1K。
下面是一个完整的 http 块的配置示例:
http {
# 设置worker进程数
worker_processes auto;
# 设置每个worker进程最大连接数
worker_connections 512;
# 设置长连接超时时间
keepalive_timeout 65;
# 设置server_name的hash桶大小
server_names_hash_bucket_size 128;
# 设置客户端请求头缓冲区大小
client_header_buffer_size 2k;
}server配置项
用于配置具体的虚拟主机,包括监听的端口、域名、SSL证书、反向代理等。主要的server配置项包括:
- listen:指定server监听的端口和IP地址。
- server_name:指定虚拟主机的域名,可以设置多个域名,用空格分隔。
- root:指定网站的根目录,用于存放静态文件。
- index:指定默认的首页文件。
- access_log:指定访问日志的保存路径和格式。
- error_log:指定错误日志的保存路径和格式。
- location:用于配置请求的处理规则,可以包括正则表达式、反向代理等。
下面是一个简单的server块的配置示例:
server {
# 监听的端口和IP地址
listen 80;
# 指定虚拟主机的域名
server_name example.com www.example.com;
# 网站的根目录
root /var/www/example.com;
# 默认的首页文件
index index.html;
# 访问日志的保存路径和格式
access_log /var/log/nginx/example.access.log combined;
# 错误日志的保存路径和格式
error_log /var/log/nginx/example.error.log;location配置项:
- location:用于匹配请求URI,可以使用正则表达式或者精确匹配字符串。例如:
location /images/ {
root /data/www;
}
- alias:用于指定文件系统路径,可以使用正则表达式或者精确匹配字符串。例如:
location /images/ {
alias /data/www/images/;
}
- if:用于判断某个条件是否成立,如果成立则执行特定的操作。例如:
location / {
if ($request_method = POST) {
return 405;
}
}
- limit_except:用于限制请求方法。例如:
location / {
limit_except GET POST {
deny all;
}
}
- proxy_pass:用于反向代理。例如:
location / {
proxy_pass http://backend;
}
- root:用于指定根目录。例如:
location / {
root /data/www;
}
- try_files:用于按照指定的顺序查找文件。例如:
location / {
try_files $uri $uri/ /index.html;
}
- rewrite:用于重写URI。例如:
location / {
rewrite ^/admin/(.*)$ /$1 break;
}
- error_page:用于指定错误页面。例如:
location / {
error_page 404 /404.html;
}