运行工作进程数、运行CPU亲和力、最大打开文件数、gzip调优、防盗链、隐藏版本号、隐藏软件名、优化woeker进程数、优化nginx连接超时时间
worker_processes 1; ## worker 进程数应该设置为服务器 CPU 的核数。
[root@summer ~]# grep -c processor /proc/cpuinfo # 查看CPU核数
2
[root@summer ~]# vim /usr/local/nginx/conf/nginx.conf # 设置worker进程数
worker_processes 2;
[root@summer ~]# grep -c processor /proc/cpuinfo # 查看CPU核数
2
worker_processes 2; # 2核CPU的配置
worker_cpu_affinity 01 10;
worker_processes 4; # 4核CPU的配置
worker_cpu_affinity 0001 0010 0100 1000;
worker_processes 8; # 8核CPU的配置
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 1000000;
[root@summer ~]# /usr/local/nginx/sbin/nginx -t
[root@summer ~]# /usr/local/nginx/sbin/nginx -s reload
worker_processes 2;
worker_cpu_affinity 01 10;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 15000;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on; # 开启文件的高效传输模式
tcp_nopush on; # 激活 TCP_CORK socket 选择,sendfile为on时这里也应该设为on,数据包会累积一下再一起传输,可以提高一些传输效率。
tcp_nodelay on; # 小的数据包不等待直接传输
keepalive_timeout 65; # keepalive_timeout 指定了与客户端的 keep-alive 链接的超时时间。服务器会在这个时间后关闭链接。降低这个值,以避免让 worker 过长时间的忙碌。注:后台有导出的话,其中参数keepalive_timeout可设置大些,为 1065
}
http {
include mime.types;
server_names_hash_bucket_size 512;
default_type application/octet-stream;
sendfile on;
tcp_nodelay on;
keepalive_timeout 65;
client_header_timeout 15;
client_body_timeout 15;
send_timeout 25;
include vhosts/*.conf;
}
client_max_body_size
用于设置最大的允许客户端请求主体的大小。
http {
client_max_body_size 8m; # 设置客户端最大的请求主体大小为 8 M
}
http {
gzip on; # 开启压缩功能,可以帮助Nginx减少大量的网络传输工作
gzip_min_length 1k; # 允许压缩的对象的最小字节
gzip_buffers 4 32k; # 压缩缓冲区大小,表示申请4个单位为32k的内存作为压缩结果的缓存
gzip_http_version 1.1; # 压缩版本,用于设置识别HTTP协议版本
gzip_comp_level 9; # 压缩级别,1级压缩比最小但处理速度最快,9级压缩比最高但处理速度最慢
gzip_types text/plain application/x-javascript text/css application/xml; # 允许压缩的媒体类型
gzip_vary on; # 该选项可以让前端的缓存服务器缓存经过gzip压缩的页面,例如用代理服务器缓存经过Nginx压缩的数据
}
Nginx expires 的功能就是给用户访问的静态内容设定一个过期时间。
server {
listen 80;
server_name www.abc.com abc.com;
root html/www;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ # 缓存的对象
{
expires 3650d; # 缓存期限为 10 年
}
}
什么是防盗链?
简单地说,就是其它网站未经许可,通过在其自身网站程序里非法调用其他网站的资源,然后在自己的网站上显示这些调用的资源,使得被盗链的那一端消耗带宽资源。
通过 HTTP referer 实现防盗链。
#第一种,匹配后缀
location ~ .*\.(gif|jpg|jpeg|png|bm|swf|flv|rar|zip|gz|bz2)$ { # 指定需要使用防盗链的媒体资源
access_log off; # 不记录日志
expires 15d; # 设置缓存时间
valid_referers none blocked *.test.com *.abc.com; # 表示仅允许这些域名访问上面的媒体资源
if ($invalid_referer) { # 如果域名不是上面指定的地址就返回403
return 403
}
}
#第二种,绑定目录
location /images {
root /web/www/img;
vaild_referers none blocked *.spdir.com *.spdir.top;
if ($invalid_referer) {
return 403;
}
}