精华内容
下载资源
问答
  • 文章目录nginx网页优化【1】手工编译安装nginx服务【2】隐藏版本信息【3】nginx缓存【4】nginx压缩【5】nginx日志分割【6】nginx客户端超时时间设置【7】nginx进程优化【8】防盗链设置(1)首先配置盗链网站(2)...

    nginx安全优化和nginx网页优化

    一、nginx安全优化

    【1】nginx访问统计

    vim /etc/nginx.conf
    location /status {
                 stub_status on;
                 access_log  off;
            }
    service nginx restart
    ########在访问192.168.60.60/status##########
    

    【2】nginx访问控制

    (1)安装httpd服务借用htpasswd
    yum install -y httpd
    which htpasswd
    htpasswd -c /usr/local/nginx/passwd.db tom
    chown nginx /usr/local/nginx/passwd.db 
    chmod 400 /usr/local/nginx/passwd.db
    
    (2)指定用户使用密码访问
    vim /etc/nginx.conf
    server {
          listen 80;
          server_name www.kgc.com;
          location / {
            auth_basic "secret";
            auth_basic_user_file /usr/local/nginx/passwd_db;
            root /var/www/html/kgc;
            index  index.html index.htm; }
    }
    service nginx restart
    systemctl stop firewalld.service 
    setenforce 0 
    
    (3)拒绝某一主机或网段
    vim /etc/nginx.conf
        server {
          listen 80;
          server_name www.benet.com;
          location / {
            deny 192.168.60.11;
            allow all;
            root /var/www/html/benet;
             index  index.html index.htm; }
    }
    service nginx restart
    systemctl stop firewalld.service 
    setenforce 0 
    

    【3】防盗链设置

    盗链网站:192.168.60.10
    正常网站:192.168.60.20

    (1)首先配置盗链网站
    yum install -y httpd
    vim /var/www/html/index.html
    <h1>this is daolian web</h1>
    <img src="http://www.kgc.com/meinv.jpg" />
    vim /etc/httpd/conf/httpd.conf
    Listen 192.168.60.10:80
    #Listen 80
    ServerName www.test.com:80
    echo "nameserver 192.168.60.20" >>/etc/resolv.conf
    systemctl start httpd.service
    
    (2)配置正常的网站
    cd /usr/local/nginx/html/
    vim index.html
    <h1>Welcome to nginx!</h1>
    <img src="meinv.jpg" />
    mv esha.jpg error.png
    
    yum install -y bind
    vim /etc/named.conf
    listen-on port 53 { any; };
    allow-query     { any; };
    vim /etc/named.rfc1912.zones
    zone "kgc.com" IN {
            type master;
            file "kgc.com.zone";
            allow-update { none; };
    };
    cp -p /var/named/named.localhost /var/named/kgc.com.zone
    vim /var/named/kgc.com.zone
    www IN  A       192.168.60.20
    systemctl start named
    
    vim /etc/nginx.conf
     location ~*\.(gif|jpg|jepg|ico|bmp)$ {
              valid_referers none blocked *.kgc.com kgc.com;
              if ( $invalid_referer ) {
                  rewrite ^/ http://www.kgc.com/error.png;}
            }
    

    二、nginx网页优化

    【1】手工编译安装nginx服务

    cd /opt
    mkdir nginx
    cd nginx出 
    tar zxvf nginx-1.12.2.tar.gz 
    cd nginx-1.12.2
    yum install -y gcc gcc-c++ pcre-devel zlib-devel
    useradd -M -s /sbin/nologin nginx
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
    make && make install
    ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
    ln -s /usr/local/nginx/conf/nginx.conf /etc/
    nginx -t
    vim /etc/init.d/nginx
    chmod +x /etc/init.d/nginx 
    chkconfig --add nginx
    

    【2】隐藏版本信息

    方法一:(在Nginx编译之后修改配置文件隐藏版本号)

     vim /etc/nginx.conf 
      server_tokens off;
    
    curl -I http://192.168.60.20
       HTTP/1.1 200 OK
       Server: nginx/1.12.2
       Date: Sun, 09 Aug 2020 20:43:50 GMT
    
    service nginx start
    
    curl -I http://192.168.60.20
       HTTP/1.1 200 OK
       Server: nginx
       Date: Sun, 09 Aug 2020 20:42:09 GMT
       Content-Type: text/html
       Content-Length: 635
       Last-Modified: Sun, 09 Aug 2020 19:34:31 GMT
       Connection: keep-alive
       Keep-Alive: timeout=100
       ETag: "5f304fc7-27b"
       Accept-Ranges: bytes
    

    方法二:(在nginx编译之前修改源码包nginx.h文件从而隐藏版本信息)

    tar zxvf nginx-1.12.2.tar.gz
    cd nginx-1.12.2/
    vim src/core/nginx.h
    #define NGINX_VERSION      "1.1.2"(版本号)
    yum install -y gcc gcc-c++ pcre-devel zlib-devel
    useradd -M -s /sbin/nologin nginx
    ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx --group=nginx \
    --with-http_stub_status_module
    make && make install
    ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
    ln -s /usr/local/nginx/conf/nginx.conf /etc/
    nginx -t
    vim /etc/init.d/nginx
    chmod +x /etc/init.d/nginx 
    chkconfig --add nginx
    

    【3】nginx缓存

    vim /etc/nginx.conf 
     location ~\.(gif|jpg|jepg|ico|bmp|png)$ {
                root   html;
                expires 1m;
            }
    service nginx restart
    

    【4】nginx压缩

    vim /etc/nginx.conf 
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/javascript
        image/jpg image/jepg image/png image/gif 
        application/xml application/x-httpd-php application/javascript application/json;
    gzip_disable "MSIE [1-6]\.";
    gzip_vary on;
    service nginx restart
    

    【5】nginx日志分割

    cd /opt
    vim fenge.sh
    
    #!/bin/bash
    d=$(date -d "-1 day" "+%Y%m%d")
    logs_path="/var/log/nginx"
    pid_path="/usr/local/nginx/logs/nginx.pid"
    [ -d $logs_path ] || mkdir -p ${logs_path}
    mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
    kill -HUP $(cat $pid_path)
    find $logs_path -mtime +30 | xargs rm -rf
    
    chmod +x fenge.sh 
    ./opt/fenge.sh 
    cd /var/log/nginx
    date -s 08/11/20
    ./fenge.sh 
    cd /var/log/nginx/
    ls
    test.com-access.log-20200809  test.com-access.log-20200810
    

    【6】nginx客户端超时时间设置

    vim /etc/nginx.conf
        keepalive_timeout  65(服务端) 100(客户端);
        client_header_timeout 80;
        client_body_timeout 80;
    nginx -t
    service nginx restart
    

    【7】nginx进程优化

    ps aux | grep nginx //只有一个worker process
    cat /proc/cpuinfo |grep -c "physical" //查看CPU数量
    vim /etc/nginx.conf
    worker_processes 2;
    worker_cpu_affinity 01 10;
    events {
        worker_connections  1024;
    }
    nginx -t
    service nginx restart
    ps aux |grep nginx
    

    【8】fpm参数优化

    vim php-fpm.conf
    pid=run/php-fpm.pid
    pm=dynamic
    pm.max_children=20     //static模式下空闲进程数上限,大于下面的值
    pm.start_servers=5   //动态方式下默认开启的进程数,在最小和最大之间
    pm.min_spare_servers=2  //动态方式下最少的空闲进程数
    pm.max_spare_servers=2 //动态方式下最大的空闲进程数
    
    展开全文
  • nginx——优化 Nginx 连接超时时间:https://www.cnblogs.com/qianbixueyuan/p/9575031.html

    nginx——优化 Nginx 连接超时时间:https://www.cnblogs.com/qianbixueyuan/p/9575031.html

    展开全文
  • nginx超时配置

    万次阅读 2016-11-01 21:53:08
    Nginx部分配置如下: //upstream配置 upstream my.upstream.com { server 10.1.1.2 max_fails=1 fail_timeout=10s;  server 10.1.1.3 max_fails=1 fail_timeout=10s; #max_fails默认值为1,fail_timeout默认值...

    Nginx部分配置如下:

    //upstream配置

    upstream  my.upstream.com {

    server  10.1.1.2   max_fails=1   fail_timeout=10s; 

    server  10.1.1.3   max_fails=1   fail_timeout=10s;   #max_fails默认值为1,fail_timeout默认值为10s,max_fails=0表示不做检查

    }

    //location配置

    location ~ / {

    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_connect_timeout  60s;   #默认值60s, nginx连接到后端服务器的连接超时时间

    proxy_timeout  10m; #默认值为10分钟,nginx接收后端服务器的响应超时时间

    proxy_pass      http://my.upstream.com;

    }

    max_fails和fail_timeout参数是配合使用的,按默认值,当某台upstream server挂了,表示在10s(fail_timeout)之内,有1(max_fails)个请求打到这台挂了的服务器,nginx就会把这台upstream server设为down机的状态,时长是10s,在这10s内如果又有请求进来,就不会被转到这台server上,过了10s重新认为这台server又恢复了

    背景介绍:由于API集群中的一台服务器(比如:10.1.1.2 服务器D)挂了,导致nginx转到服务器D的请求全部超时,感觉没有降级的策略,最后对Nginx的配置做了一个熟悉,最后发现是我们的配置没有优化的原因;

    现象:当客户端的请求打到Nginx,Nginx把请求转到服务器D,由于nginx的proxy_connect_timeout 超时时间为60s,就会导致Nginx把客户端的请求转到服务器D的时候,就会尝试连接60s,而客户端的响应时间设的是3s,所以造成客户端造成大量超时情况,Nginx报大量的499;

    讨论:给Nginx造成很大的资源负担,既然后端服务器D已经挂了,每次转到服务器D的请求重连60s确实太久,所以这次参数需要优化,如果是提供服务方,这个时间要小于服务适用方可接受的响应超时时间,我们服务后来设置的是2s(小于客户端响应超时时间3s),max_fails使用默认值1,fail_timeout也设置的是30s,表示30s内如果发现一次连接到某台upstream server超过2s,则这台server在30s不会有请求过来,这样能保证某台server down机后,在3s秒内下一台upstream能将请求结果返回给客户端(因为我们后端服务器的处理时间是小于几十ms的,所以可以保证3s内能将结果返回),也能保证后面的请求在30s不会打到这台server,还能保证如果服务恢复了,最多让服务器空转30s,后续会继续服务。

    PS:个人觉得proxy_timeout  没有设置的必要,使用默认值,如果proxy_timeout  设置过小nginx会直接返回给客户端错误,不是一次成功的请求,设置过大,客户端直接报响应超时,所以建议使用默认值,如果真的响应慢了,只能去优化代码的逻辑了。

    展开全文
  • 1. 什么是连接超时 当服务器建立的连接没有接收处理请求时,可以在指定的时间内让它超时自动退出 2. 连接超时的作用 (1) 将无用的连接设置为尽快超时,可以保护服务器的系统资源(CPU、内存、磁盘) (2) 当连接...

    1. 什么是连接超时 

    当服务器建立的连接没有接收处理请求时,可以在指定的时间内让它超时自动退出

    2. 连接超时的作用

    (1) 将无用的连接设置为尽快超时,可以保护服务器的系统资源(CPU、内存、磁盘)

    (2) 当连接很多时,及时断掉那些建立好的但又长时间不做事的连接,以减少其占用的服务器资源

    (3) 如果黑客攻击,会不断地和服务器建立连接,因此设置连接超时以防止大量消耗服务器的资源

    (4) 如果用户请求了动态服务,则 Nginx 就会建立连接,请求 FastCGI 服务以及后端 MySQL 服务,设置连接超时,使得在用户容忍的时间内返回数据

    3. 连接超时存在的问题

    (1) 服务器建立新连接是要消耗资源的,因此,连接超时时间不宜设置得太短,否则会造成并发很大,导致服务器瞬间无法响应用户的请求

    (2) 有些 PHP 站点会希望设置成短连接,因为 PHP 程序建立连接消耗的资源和时间相对要少些

    (3) 有些 Java 站点会希望设置成长连接,因为 Java 程序建立连接消耗的资源和时间要多一些,这时由语言的运行机制决定的

    4. 设置连接超时

    (1) keepalive_timeout  60:该参数用于设置客户端连接保持会话的超时时间,超过这个时间服务器会关闭该连接

         参数语法 keepalive_timeout 时间数(秒);

         放置位置  http,server,location

    (2) client_header_timeout  15:该参数用于设置读取客户端请求头数据的超时时间,如果超时客户端还没有发送完整的 header 数据,服务器将返回 "Request time out (408)" 错误

         参数语法 client_header_timeout 时间数(秒);

         放置位置 http,server

    (3) client_body_timeout  15:该参数用于设置读取客户端请求主体数据的超时时间,如果超时客户端还没有发送完整的主体数据,服务器将返回 "Request time out (408)" 错误

         参数语法 client_body_timeout 时间数(秒);

         放置位置 http,server,location

    (4) send_timeout  25:用于指定响应客户端的超时时间,如果超过这个时间,客户端没有任何活动,Nginx 将会关闭连接

         参数语法 send_timeout 时间数(秒);

         放置位置 http,server,location

    (5) tcp_nodelay :默认情况下当数据发送时,内核并不会马上发送,可能会等待更多的字节组成一个数据包,这样可以提高 I/O 性能,但是,在每次只发送很少字节的业务场景中,使用 tcp_nodelay 功能,等待时间会比较长

    在主配置文件nginx.conf中配置

    [root@web01 ~]# cat /application/nginx/conf/nginx.conf
    worker_processes  2;
    worker_cpu_affinity 0101 1010;
    error_log logs/error.log;
     
    #配置Nginx worker进程最大打开文件数
    worker_rlimit_nofile 65535;
     
    user www www;
    events {
        #单个进程允许的客户端最大连接数
        worker_connections  20480;
        #使用epoll模型
        use epoll;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        #sendfile        on;
        #keepalive_timeout  65;
        #访问日志配置
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
     
     
        #虚拟主机
        include /application/nginx/conf/extra/www.conf;
        include /application/nginx/conf/extra/blog.conf;
        include /application/nginx/conf/extra/bbs.conf;
        include /application/nginx/conf/extra/edu.conf;
        include /application/nginx/conf/extra/phpmyadmin.conf;
        include /application/nginx/conf/extra/status.conf;
     
        #nginx优化----------------------
        #隐藏版本号
        server_tokens on;
     
        #优化服务器域名的散列表大小 
        server_names_hash_bucket_size 64;
        server_names_hash_max_size 2048;
     
        #开启高效文件传输模式
        sendfile on;
        #减少网络报文段数量
        #tcp_nopush on;
        #提高I/O性能
        tcp_nodelay on;
     
        #连接超时 时间定义 默认秒 默认65秒
        keepalive_timeout 60;
        
        #读取客户端请求头数据的超时时间 默认秒 默认60秒
        client_header_timeout 15;
        
        #读取客户端请求主体的超时时间 默认秒 默认60秒
        client_body_timeout 15;
        
        #响应客户端的超时时间 默认秒 默认60秒
        send_timeout 25;
    }
    展开全文
  • nginx超时机制和设置

    2019-10-24 19:57:36
    在nignxi中,超时自动重发,默认是开启的,需要关闭配置。 nginx中增加配置: proxy_next_upstream off; proxy_send_timeout 后端服务器数据回传时间(代理发送超时时间...proxy_connect_timeout nginx连接后端的超时...
  • 1.问题分析 nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序执行需要90秒,而nginx...另一方面,可以调大nginx超时限制的参数,使程序可以正常执行。 对于访问超时的设定,ngi
  • Nginx服务优化

    2020-11-30 23:55:02
    Nginx服务优化Nginx隐藏版本号、修改Nginx用户和组、Nginx网页缓存时间、Nginx日志切割、配置Nginx连接超时、更改Nginx运行进程数、Nginx网页压缩功能、Nginx防盗链、FPM模块优化
  • 一、Nginx版本隐藏优化1.1 Nginx隐藏版本号1.2 Nginx隐藏版本号二、Nginx用户与组优化2.1 修改主配置文件指定用户和组三、配置Nginx网页缓存...Nginx日志分隔配置五、Nginx网页连接超时优化5.1 Nginx网页连接超时5....
  • nginx网页优化

    2020-12-01 01:18:11
    文章目录一、nginx服务优化1.1 配置Nginx隐藏版本号作用方法1.2 修改Nginx用户与组1.3 配置Nginx网页缓存时间网页缓存设置作用网页缓存设置方法二、nginx深入优化2.1 Nginx的日志切割日志分割的概述日志分割的方法...
  • 配置Nginx实现连接超时 在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间。 1.用“curl -I”命令查看connection参数 [root@localhost nginx]# curl ...
  • nginx超时时间管理 nginx进程管理 nginx日志分割 实验前提: ​ 手工编译安装完成Nginx服务 一、nginx版本隐藏 ​ nginx服务是默认显示版本号的, [root@localhost nginx]# curl -I http://192.168.142.128 ...
  • nginx超时时间配置

    2017-08-16 16:31:00
    Nginx部分配置如下: //upstream配置 upstream my.upstream.com { server 10.1.1.2 max_fails=1 fail_timeout=10s; server 10.1.1.3 max_fails=1 fail_timeout=10s; #max_fails默认值为1,fail_timeout默认值为.....
  • Nginx性能优化

    2017-09-27 22:05:33
    Nginx优化
  • Nginx配置优化,主要是配置nginx.conf文件nginx进程数,建议按照cpu数目来指定,一般为它的倍数(1最多2)。worker_processes auto; //即1倍,即cpu个数下面这个指令是指当一个nginx进程打开的最多文件描述符数目,...
  • 1. 优化nginx worker进行个数 nginx服务主要有两个重要进程: 01) master进程:可以控制nginx服务的启动 停止 或重启 02) worker进程:处理用户请求信息,帮助用户向后端服务进行请求(php mysql) 添加worker进程...
  • Nginx服务优化可以从隐藏版本号、更改用户与组、配置网页缓存时间、日志切割、设置连接超时这几个方面进行优化。下面来详细的看看 1.隐藏版本号 在生产环境中需要隐藏Nginx的版本号,以避免泄露Nginx的版本,使××...
  • Nginx优化

    2021-06-30 13:43:29
    Nginx优化一级目录二级目录三级目录 一级目录 二级目录 三级目录
  • nginx 性能优化

    2020-11-20 16:22:24
    1.3 更改掉nginx默认用户及用户组(worker进程服务用户优化) 1.4 配置nginx worker进程个数 1.5 根据cpu核数进行nginx进程优化 1.6 nginx事件处理模型优化 1.7 调整nginx worker单个进程允许的客户端最大连接数 1.8...
  • NginxNginx配置优化

    2015-04-01 17:49:58
    Nginx配置优化
  • Nginx网页优化服务

    2020-12-01 20:15:53
    Nginx优化服务nginx隐藏版本号直接隐藏版本号修改网页服务来隐藏版本号修改Nginx用户和组Nginx网页缓存时间Nginx日志切割配置Nginx连接超时更改Nginx运行进程数Nginx网页压缩功能Nginx防盗链FPM模块优化 nginx隐藏...
  • Nginx运行时进程需要有用户与组的支持,用以实现对网站文件读取时进行访问控制。主进程由 root创建,子进程由指定的用户与组创建。nginx 默认使用 nobody 用户账户与组账号,一般也要进行修改。 修改 nginx 用户与组...
  • nginx软件优化

    2018-04-03 16:01:00
    Nginx软件优化分类: Web应用,故障解决,运维基本功1.1 Nginx优化分类安全优化(提升网站安全性配置) 性能优化(提升用户访问网站效率) 1.2 Nginx安全优化1.2.1 隐藏nginx版本信息优化官方配置参数说明:...
  • Nginx 性能优化

    2019-09-19 15:40:04
    Nginx 性能优化1、Nginx运行工作进程数量2、Nginx运行CPU亲和力3、Nginx最大打开文件数4、Nginx事件处理模型5、开启高效传输模式6、连接超时时间7、fastcgi 调优8、gzip 调优9、expires 缓存调优10、防盗链11、内核...
  • Nginx网页优化

    2020-11-30 22:54:52
    #Nginx网页优化 隐藏版本信息 方式一 在Nginx的主配置文件中的HTTP模块下新增命令;标黄为新增内容 http { include mime.types; default_type application/octet-stream; server_tokens off; 隐藏前 隐藏后 ...
  • Nginx安全优化

    2020-11-30 20:55:02
    文章目录一、Nginx隐藏版本号1.1 修改配置文件法1.2 修改源码法二、修改Nginx用户与组三、配置Nginx网页缓存时间四、实现Nginx的日志切割五、配置Nginx实现连接超时六、更改Nginx运行进程数七、配置Nginx实现网页...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,788
精华内容 9,115
关键字:

nginx超时优化