nginx配置文件模版 |nginx参数可选 |每个参数带注释小白也能试着调试
# nginx配置模版
# 设置 Nginx 主进程运行的用户和用户组
user www www;
#user root;
# 指定 Nginx 工作进程(worker processes)以哪个用户和用户组的身份运行
# 自动确定工作进程的数量,通常等于 CPU 核数,如果这里设置数字通常等于CPU实际总线程数即逻辑核
worker_processes auto;
###怎么确定当前服务器的总线程数
###linux使用lscpu 的出一堆参数关键单词参数如下
##Socket(s): 1,物理插槽的数量,一个插槽对应一个CPU
##Core(s) per socket: 4,每个插槽的核心数,即单个CPU有几核 几个物理核心数简称几核
##Thread(s) per core: 1,每个核心的线程数。 1未开启超线程,2开启
##CPU(s): 4(操作系统识别的总逻辑处理器数)
###当前服务器的总线程数=物理CPU数 × 核数 × 超线程倍数 = 1×4×1=4
# 自动设置 CPU 亲和性,每个工作进程自动绑定一个CPU,以优化 CPU 使用
worker_cpu_affinity auto;
# 设置错误日志的位置和日志级别
error_log /home/wwwlogs/nginx_error.log crit;
# 指定 Nginx 主进程的 PID 文件路径
pid /usr/local/nginx/logs/nginx.pid;
# 设置单个工作进程可以打开的最大文件描述符数量
worker_rlimit_nofile 51200;
events {
# 使用 epoll 事件模型,适用于 Linux 系统
use epoll;
# 设置每个工作进程最大并发连接数
worker_connections 51200;
# 禁用多重接受连接
multi_accept off;
# 禁用接受互斥锁
accept_mutex off;
}
http {
# 引入 MIME 类型映射文件
include mime.types;
# 设置默认的 MIME 类型
default_type application/octet-stream;
# 调整服务器名称哈希表的大小
server_names_hash_bucket_size 128;
# 设置客户端请求头缓冲区大小
client_header_buffer_size 32k;
# 设置大型客户端请求头缓冲区数量和大小
large_client_header_buffers 4 32k;
# 设置客户端请求体的最大大小
client_max_body_size 50m;
# 启用 sendfile,提高文件传输性能
sendfile on;
# 设置 sendfile 传输的最大块大小
sendfile_max_chunk 512k;
# 启用或禁用 TCP_NOPUSH 选项,以减少网络延迟
tcp_nopush on;
# 设置连接保持超时时间
keepalive_timeout 60;
# 启用或禁用 TCP_NODELAY 选项,以减少网络延迟
tcp_nodelay on;
# 设置 FastCGI 连接超时时间
fastcgi_connect_timeout 300;
# 设置 FastCGI 发送数据超时时间
fastcgi_send_timeout 300;
# 设置 FastCGI 读取数据超时时间
fastcgi_read_timeout 300;
# 设置 FastCGI 缓冲区大小
fastcgi_buffer_size 64k;
# 设置 FastCGI 缓冲区数量和大小
fastcgi_buffers 4 64k;
# 设置 FastCGI 忙缓冲区大小
fastcgi_busy_buffers_size 128k;
# 设置 FastCGI 临时文件写入大小
fastcgi_temp_file_write_size 256k;
# 启用 gzip 压缩
gzip on;
# 设置 gzip 压缩的最小文件大小
gzip_min_length 1k;
# 设置 gzip 压缩缓冲区数量和大小
gzip_buffers 4 16k;
# 设置 gzip 压缩的 HTTP 版本
gzip_http_version 1.1;
# 设置 gzip 压缩级别
gzip_comp_level 2;
# 设置 gzip 压缩的 MIME 类型
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
# 启用 gzip vary 头
gzip_vary on;
# 设置 gzip 代理配置
gzip_proxied expired no-cache no-store private auth;
# 禁用特定用户代理的 gzip 压缩
gzip_disable "MSIE [1-6].";
# 设置服务器令牌信息是否在响应头中显示
server_tokens off;
#以下其他配置
#gzip_comp_level 4;
#gzip_min_length 256;
#gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
#gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# 禁用访问日志(生产环境不开,测试环境建议开启用以便于调试)
access_log off;
server {
# 设置监听端口和重用端口选项,注释ip6
listen 81 default_server reuseport;
#listen [::]:80 default_server ipv6only=on;
# #设置绑定的主机名、域名或ip地址 也可以填写指定ip或指定主机名或下划线_
server_name 192.168.28.79;
# 设置默认的索引文件
index index.html index.htm index.php;
# 设置根目录路径 #设置服务器默认网站的根目录位置,
# 需要手动创建目录 还有要在其下面要有前端文件比如HTML之类
#测试文件是一般是xxx.html格式不然会报错403,找不到目录下前端文件.
root /home/wwwroot/default;
# 设置 404 错误页面 可不开另行配置
#error_page 404 /404.html;
# 禁止访问特定目录中的 PHP 文件??
#location ~ /(wp-content|uploads|wp-includes|images)/.*.php$ {
#deny all;
}
# 包含 PHP 配置文件
include enable-php.conf;
location /nginx_status {
# 启用 nginx 状态监控
stub_status on;
# 禁用访问日志
access_log off;
}
# 设置图片文件的缓存时间
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
#区分大小写,匹配文件扩展名为gif|jpg|jpeg|png|bmp|swf的文件,$:锚点符号,表示匹配字符串的结尾。
#location ~* .(gif|jpg|jpeg|png|bmp|swf)$ {
#不区分大小写 ~*:表示不区分大小写的正则表达式匹配 转义符加小数点表示匹配文件扩展名前的点号
expires 30d;
}
# 设置 JS 和 CSS 文件的缓存时间
location ~ .*.(js|css)?$ {
# location ~* .(js|css)$ {
expires 12h;
}
# 允许访问 .well-known 目录
location ~ /.well-known {
allow all;
}
location ~ /.
{
# 禁止访问隐藏文件
deny all;
}
# 缓存示例
#proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
#proxy_cache_key "$scheme$request_method$host$request_uri";
# 设置访问日志的位置
access_log /home/wwwlogs/access.log;
}
# 包含虚拟主机配置文件
include vhost/*.conf;
# 缓存示例
#proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m;
#proxy_cache_key "$scheme$request_method$host$request_uri";
}
以上配置精简如下
Nginx服务器的基本配置模板,涵盖了用户和用户组设置、工作进程数量、CPU亲和性、错误日志位置、PID文件路径、文件描述符数量、事件模型、并发连接数、MIME类型、客户端请求头缓冲区大小、请求体最大大小、sendfile传输、TCP_NOPUSH和TCP_NODELAY选项、连接保持超时、FastCGI超时和缓冲区设置、gzip压缩、服务器令牌信息、访问日志、监听端口、服务器名称、根目录、404错误页面、PHP文件访问控制、nginx状态监控、图片和JS/CSS文件缓存、隐藏文件访问控制、缓存路径和键设置等内容。这些配置项帮助优化Nginx性能,确保服务器高效稳定运行。
user www www; worker_processes auto; error_log /home/wwwlogs/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; multi_accept off; accept_mutex off; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m; sendfile on; sendfile_max_chunk 512k; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 256k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]."; server_tokens off; access_log off; server { listen 81 default_server reuseport; server_name 192.168.28.79; index index.html index.htm index.php; root /home/wwwroot/default; include enable-php.conf; location /nginx_status { stub_status on; access_log off; } location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*.(js|css)?$ { expires 12h; } location ~ /.well-known { allow all; } location ~ /. { deny all; } access_log /home/wwwlogs/access.log; } include vhost/*.conf; }