首页 > 代码库 > nginx优化配置参考

nginx优化配置参考

#nginx启用的用户和组
user nginx;

#启动的工作进程数,一般配置为跟逻辑CPU核数一样
worker_processes auto;

#1个nginx进程可打开的最大文件描述符数目的数量
worker_rlimit_nofile 51200;

#记录严重错误日志
error_log /var/log/nginx/error.log error;

#运行的pid
pid /run/nginx.pid;

#加载其他模块配置
include /usr/share/nginx/modules/*.conf;

#处理连接的设置
events {
#nginx工作模式(消息通知模式(epoll),轮询模式效率低(select)),是否允许接受多个网络请求,使用哪种类型驱动处理请求
use epoll;

#设置nginx可以处理的最大并发数,每个进行可打开的最大连接数据,受最大文件描述符数目的限制,可用ulimit -n查看
worker_connections 51200;

#开启后,保持尽可能的接受更多的连接请求
accept_mutex on;
multi_accept on;
}

#处理核心特性的设置
http {
#是否显示nginx版本号等信息,默认off
server_tokens off;

#是否使用sendfile函数来输出文件,可提升nginx读文件性能,如果提供下载就需要关闭。
sendfile on;

#每次调用sendfile()时,最大传输的数据大小
sendfile_max_chunk 512k;

#是否在1个数据包里发送所有头文件
tcp_nopush on;

#是否需要及时发送数据,并立即得到返回值
tcp_nodelay on;

log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;

#打开访问日志
access_log /var/log/nginx/access.log main;
access_log on;

#长连接超时时间,单位秒
keepalive_timeout 30;

types_hash_max_size 2048;

#文件扩展名与文件类型映射表
include /etc/nginx/mime.types;

#默认文件类型
default_type application/octet-stream;

#加载其他nginx配置
include /etc/nginx/conf.d/*.conf;

#启用gzip压缩
#gzip on;

#给代理服务器启用压缩
#gzip_vary on;

#使用静态资源,而不用压缩
#gzip_static on;

#设置获取多少单位的缓存用于存储gzip压缩的结果数据流,以8K为单位进行申请内存。
#gzip_buffers 4 16k;

#支持http的协议版本
#gzip_http_version 1.0;

#对指定的客户端禁用压缩
#gzip_disable "MSIE [4-6]\.";

#允许压缩基于请求和响应数据
#gzip_proxied expired no-cache no-store private auth;

#压缩大于多少字节的数据
#gzip_min_length 10240;

#设置压缩等级 1-9之间,9最慢压缩比最大,推荐6
#gzip_comp_level 6;

#设置压缩的格式
#gzip_types text/plain application/x-javascript text/css text/javascript application/json application/x-httpd-php font/ttf font/otf image/svg+xml;

#是否启用缓存,及缓存的最大数量,缓存的有效时间单位秒
open_file_cache max=100000 inactive=20s;

#多长时间检查1次缓存的有效信息
open_file_cache_valid 60s;

#文件最小的访问次数,访问多少次才会被缓存
open_file_cache_min_uses 5;

#搜索1个文件是否缓存错误信息
open_file_cache_errors on;

#客户端请求的单个文件的最大字节数
client_max_body_size 8m;

#代理缓存区用户客户端请求的单个文件的最大字节数
client_header_buffer_size 32k;

server {
#服务的全局监听端口
listen 80 default_server;
listen [::]:80 default_server;

#服务的名称
server_name _;

include /etc/nginx/default.d/*.conf;

location / {
#定义服务器的默认网站根目录位置
root /usr/share/nginx/html;
}

#设置图片资源的过期时间
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$
{
access_log off;
expires 15d;
}

#设置脚本 样式 视频资源的过期时间
location ~* ^.+\.(css|js|txt|xml|swf|wav|mp4)$
{
access_log off;
expires 24h;
}

#设置网页资源的过期时间
location ~* ^.+\.(html|html)
{
expires 1h;
}

#错误页面文件名称,不同的错误码对应不同的页面
error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}

nginx优化配置参考