Nginx一些配置信息
1、隐藏nginx header里版本号信息
server_tokens off;
2、更改掉nginx默认用户及用户组
user nginx;
3、根据cpu核数进行nginx进程优化
一般设置为cpu核数或则核数x2,用top按1查看
四核cpu配置: worker_processes 4; worker_cpu_affinity 0001 0010 0100 1000;
八核cpu服务器参数配置: worker_processes 8; worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; worker_cpu_affinity 0001 0010 0100 1000 0001 0010 0100 1000;
4、上传文件大小限制
client_max_body_size 10m;
5、配置nginx gzip压缩功能
# 开启压缩功能
gzip on;
# 设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,不管页面多大都进行压缩,建议设置成大于1K,如果小与1K可能会越压越大。
gzip_min_length 1k;
# 压缩缓冲区大小,表示申请4个单位为32K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
gzip_buffers 4 32k;
# 压缩版本(默认1.1,前端为squid2.5时使用1.0)用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可
gzip_http_version 1.1;
# 压缩比例,用来指定GZIP压缩比,1压缩比最小,处理速度最快,9压缩比最大,传输速度快,但是处理慢,也比较消耗CPU资源。
gzip_comp_level 9;
# 用来指定压缩的类型,'text/html'类型总是会被压缩。
gzip_types text/css text/xml application/javascript;
# vary header支持,改选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过nginx压缩的数据。
gzip_vary on;
6、nginx错误页面优雅显示
阿里门户天猫网站的nginx优雅显示配置案例
error_page 500 501 502 503 504 http://err.tmall.com/error2.html;
error_page 400 403 404 405 408 410 411 412 413 414 415 http://err.tmall.com/error1.html;
7、反向代理
location / {
# 设置反向代理
proxy_pass http://192.168.1.121:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 设置资源反向代理
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
proxy_pass http://192.168.1.121:8080/;
}
# 设置反向代理
location ~ .*\.(js|css|html)?$ {
proxy_pass http://192.168.1.121:8080/;
}
8、配置信息
server {
listen 80;
listen 443 ssl spdy; # 不兼容80的时候,就不用这个ssl和spdy指定了
server_name www.domain.com; # 填写绑定证书的域名
# ssl和https配置
ssl on;
ssl_certificate www.domain.com.crt; # 公钥
ssl_certificate_key www.domain.com.key;# 私钥
ssl_session_cache shared:SSL:20m; # 缓存池 缓存大小设置为 20M,大概能放下 80000 个会话
ssl_session_timeout 10m; # 缓存时间
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 只启用 TLS 系列协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE:!kEDH;# 按照这个套件配置
# 完整参考 ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:RC4-SHA:HIGH:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!CBC:!EDH:!kEDH:!PSK:!SRP:!kECDH;
ssl_prefer_server_ciphers on;
# 可选 以下三行 启用 OCSP 可以让浏览器更快的获取证书撤销状态
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /you/path/to/domain.chain.crt; # ROOT证书链
# 启用 HSTS 用于通知浏览器强制使用 https 通信
add_header Strict-Transport-Security "max-age=31536000";
resolver 8.8.8.8 8.8.4.4 valid=300s; # 国外
resolver 223.5.5.5 223.6.6.6 valid=300s; # 国内
resolver_timeout 10s;
location / {
root html; # 站点目录
index index.html index.htm;
}
}
配置完成后,先用nginx -t来测试下配置是否有误,正确无误的话,重启nginx。就可以访问了。