zoukankan      html  css  js  c++  java
  • Nginx服务优化详解

    Nginx服务优化详解

    1.隐藏Nginx版本信息
    编辑主配置文件nginx.conf,在http标签中添加代码 server_tokens off;来隐藏软件版本号。
    2.更改Nginx服务启动的默认用户
    编译安装的时候指定用户或者在安装后在配置文件中指定。
    3.优化Nginx服务worker进程个数
    • Nginx服务worker processes的值通常为cpu的核数。
    worker_processes 8;
    worker_connectiosn 20480;
    ##work_connections是每个work_processer的连接数
    ##并发=worker processes*worker connections
    • 获取cpu核数:grep -C "processor" /proc/cpuinfo
    • 查看物理cpu个数: grep 'physical id' /proc/cpuinfo|sort|uniq|wc -l
    • Nginx worker进程最大打开文件数
    worker_rlimit_nofile 65535;(放在主标签段)
    4.Nginx域名的优化
    根据用户请求的域名从服务器域名缓存中进行匹配,从而降低域名访问的磁盘IO,将如下代码段放置在http标签段
    server_names_hash_bucket_size 128;
    server_names_hash_max_size 512;(默认512)
    5.Nginx参数调整之连接超时时间
    5.1连接超时的作用
    • 将无用的连接尽快超时,可以保护服务器的系统资源
    • 当连接过多时,及时断掉已经建立好的 但长时间不工作的的连接,减少其占用的服务器资源
    • 黑客攻击网站,会不断和服务器建立并消耗大量的连接数,需要断开这些恶意占用资源的连接
    • 连接超时是服务对本身的一种自我管理、自我保护机制。
    5.2设置nginx连接超时时间
    • 设置keepalive_timeout参数
    keepalive_timeout 60;
    用于设置客户端连接保持会话的超时时间,可以在http、server、location中使用
    • 设置client_header_timeout参数
    client_header_timeout 15s;
    用于读取客户端请求头数据的超时时间。可以放置在http、server标签段
    • 设置client_body_timeout参数
    client_body_timeout 15s;
    用于读取客户端请求主体数据的超时时间。可以放置在http、server标签段
    • 设置send_timeout参数
    send_timeout 25s;
    用于设置服务端发送http信息相应客户端都超时时间,如果在规定的时间内,客户端 没有响应,则断开连接
    6.设置客户端上传文件的大小
    client_max_body_size 8m;
    7.配置nginx gzip压缩实现性能优化
    放置在http标签中
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 32k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_type /text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    8.配置Nginx expires缓存实现性能优化
    Nginx expires功能:为用户访问网站内容设置一个过期时间,让用户第一次访问这些内容时,会把这些内容存在用户浏览器本地,当用户之后继续访问该网站时,浏览器会检查加载已经存在的浏览器本地内容,直到缓存的内容过期或被清除为止。
    其配置方法为在配置文件的Server标签中加入一个location标签,如缓存图片等至客户端浏览器中,代码如下:
    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires 360d;
    }
    9.禁止Nginx禁止非法域名解析访问企业网站
    当解析域名的请求头,如果不匹配返回501;添加server标签到第一个点
    server{
    listen 80 default_server;
    server_name _;
    return 501;
    }
     
    10.通过referer防止Nginx网站图片被盗链
    location ~* ^.+.(jpg|png|swf|flv|rar|zip)${
    valid_referers none blocked *.etiantian.org etiantian.org;
    if ($invalid_referer){
    rewrite ^/ http://bbs.etiantian.org/img/nolink.gif;
    }
    root html/www;
    }
     
    阿里天猫门户的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;
  • 相关阅读:
    磁盘管理RAID
    06磁盘
    7.30
    作业
    chapter02作业
    2019-07-23
    Tomcat三种运行模式(BIO, NIO, APR)
    Tomcat监控管理
    tomcat中web站点的部署
    Tomcat访问控制
  • 原文地址:https://www.cnblogs.com/xhyan/p/6530793.html
Copyright © 2011-2022 走看看