zoukankan      html  css  js  c++  java
  • 安装nginx

    1.下载nginx安装包和依赖包


    wget http://nginx.org/download/nginx-1.15.9.tar.gz
    wget http://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
    wget http://www.zlib.net/fossils/zlib-1.2.11.tar.gz

    2.解压依赖包


    tar -xzvf pcre-8.43.tar.gz -C /usr/local/myapps
    tar -xzvf zlib-1.2.11.tar.gz -C /usr/local/myapps

    3.解压nginx安装包


    tar -xzvf nginx-1.15.9.tar.gz

    4.安装编译依赖环境


    yum -y install gcc-c++

    5.安装nginx


    cd nginx-1.15.9/
    ./configure --prefix=/usr/local/myapps/nginx --sbin-path=/usr/sbin/nginx --pid-path=/usr/local/myapps/nginx/logs/nginx.pid --error-log-path=/usr/local/myapps/nginx/logs/error.log --http-log-path=/usr/local/myapps/nginx/logs/access.log --with-pcre=/usr/local/myapps/pcre-8.43 --with-zlib=/usr/local/myapps/zlib-1.2.11 --with-http_stub_status_module --with-stream
    make && make install
    参数说明:
    --with-http_stub_status_module  加载性能统计模块
    --with-stream 加载四层负载均衡支持模块

    6.验证


    nginx -V

    7.创建nginx运行用户


    groupadd www
    useradd -M -g www -s /sbin/nologin www

    8.编写初始配置文件


    mv /usr/local/myapps/nginx/conf/nginx.conf /usr/local/myapps/nginx/conf/nginx.conf_bak
    mkdir /usr/local/myapps/nginx/conf/vhosts/
    cat << EOF >/usr/local/myapps/nginx/conf/nginx.conf
    user www www;
    worker_processes  1;
    events {
         worker_connections  1024;
    }
    http {
         include       mime.types;
         default_type  application/octet-stream;
         log_format  main  '$remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
         sendfile        on;
         keepalive_timeout  65;
         include /usr/local/myapps/nginx/conf/vhosts/http*.conf;
    }
    stream {
    include /usr/local/myapps/nginx/conf/vhosts/tcp*.conf;
    }
    EOF
    9.检查配置文件的正确性
    nginx -t

    10.启动nginx


    nginx -c /usr/local/myapps/nginx/conf/nginx.conf

    11.停止nginx


    ps -ef | grep nginx | grep -v grep | awk '{print $2}' |xargs kill -9

    12.重载配置文件


    nginx -s reload

    nginx调优配置

    重启nginx生效
    ps -ef | grep nginx | grep -v grep | awk '{print $2}' |xargs kill -9
    nginx -c /usr/local/myapps/nginx/conf/nginx.conf

    1.查看正在运行的nginx进程的ulimit资源限制


    nginxpid=`ps -ef | grep nginx | awk '{if($3 == 1) print $2}'`
    cat /proc/${nginxpid}/limits

    2.配置任意用户最大可打开的文件句柄数


    cat << EOF >> /etc/security/limits.conf
    * soft nofile 204800
    * hard nofile 204800
    EOF

    3.配置任意用户最大可运行的线程数


    sed -i 's/^*/#&/' /etc/security/limits.d/20-nproc.conf
    cat << EOF >> /etc/security/limits.d/20-nproc.conf
    * soft nproc 204800
    * hard nproc 204800
    EOF

    4.nginx打开的进程数(与CPU核数一致)


    worker_processes 8;

    5.配置nginx打开的最多文件描述符数目(与ulimit -n的值保持一致)


    worker_rlimit_nofile 204800;

    6.使用epoll的I/O模型


    use epoll;

    7.配置每个进程允许的最多连接数


    worker_connections 204800;

    8.配置每个TCP连接请求处理完后保持不断开的最长时间


    #有些浏览器最多只保持60秒,所以可以设定为60秒
    keepalive_timeout 60s;

    9.根据系统分页大小来设置每个客户端请求头部占用的缓冲区大小


    #系统分页大小可以用命令getconf PAGESIZE取得
    client_header_buffer_size 4k;

    10.为打开的文件启用缓存


    #缓存数量配置与(ulimit -n)一致,设置经过20s缓存文件没被再次请求就删除。
    open_file_cache max=204800 inactive=20s;
    open_file_cache_min_uses 1;

    11.配置30s启动一次对缓存文件的有效性检查


    open_file_cache_valid 30s;

    一个简单的nginx优化配置文件内容


    user www www;
    worker_processes 8;
    error_log logs/error.log crit;
    pid  /usr/local/myapps/nginx/nginx.pid;
    worker_rlimit_nofile 204800;

    events
    {
         use epoll;
         worker_connections 204800;
    }
    http
    {
         include       mime.types;
         default_type  application/octet-stream;
         charset  utf-8;
         client_header_buffer_size 4k;
         sendfile on;
         keepalive_timeout 60s;
         open_file_cache max=204800 inactive=20s;
         open_file_cache_min_uses 1;
         open_file_cache_valid 30s;
         fastcgi_cache_path /usr/local/myapps/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
           fastcgi_connect_timeout 300;
           fastcgi_send_timeout 300;
          fastcgi_read_timeout 300;
           fastcgi_buffer_size 16k;
          fastcgi_buffers 16 16k;
           fastcgi_busy_buffers_size 16k;
           fastcgi_temp_file_write_size 16k;
           fastcgi_cache TEST;
           fastcgi_cache_valid 200 302 1h;
           fastcgi_cache_valid 301 1d;
           fastcgi_cache_valid any 1m;
           fastcgi_cache_min_uses 1;
           fastcgi_cache_use_stale error timeout invalid_header http_500;

          log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
                              '$status $body_bytes_sent "$http_referer" '
                               '"$http_user_agent" $http_x_forwarded_for';
         access_log  logs/access.log  access;
         include /usr/local/myapps/nginx/conf/vhosts/http*.conf;
    }
    stream {
    include /usr/local/myapps/nginx/conf/vhosts/tcp*.conf;
    }

  • 相关阅读:
    [Android Pro] 将你的安卓手机屏幕共享到PC或Mac上
    [Android Pro] 使用apktool工具遇到could not decode arsc file的解决办法
    [Android Pro] Test win
    [Android] 深入浅出Android App耗电量统计
    [Android] adb shell dumpsys的使用
    [Android] adb 命令 dumpsys activity , 用来看 task 中的activity。 (uninstall virus)
    [Android Pro] svn实例
    [Android Pro] 告别编译运行 ---- Android Studio 2.0 Preview发布Instant Run功能
    [Android Pro] 网络流量安全测试工具Nogotofail
    python pandas replace函数
  • 原文地址:https://www.cnblogs.com/jipinglong/p/11227651.html
Copyright © 2011-2022 走看看