zoukankan      html  css  js  c++  java
  • Linux 安装Nginx


    安装Nginx之前需要编译环境gcc g++ ,可按以下命令进行安装:

    make:
    yum -y install gcc automake autoconf libtool make

    gcc g++:
    yum install gcc gcc-c++

    开始安装:

    1、Nginx依赖包安装

    Nginx需要依赖下面3个包:

    zlib      下载地址: http://www.zlib.net/

    pcre     下载地址: http://www.pcre.org/

    openssl 下载地址: http://www.openssl.org/

    安装openssl

    tar -zxvf openssl-1.0.2k.tar.gz
    cd openssl-1.0.2k
    ./configure
    make
    make install

    安装pcre

    tar -zxvf pcre-8.40.tar.gz
    cd pcre-8.40
    ./configure
    make
    make install

    安装zlib

    tar -zxvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure
    make
    make install

    2、安装Nginx

    选择Nginx安装目录,这里选择/usr/local/nginx

    tar -zxvf nginx-1.9.15.tar.gz
    cd nginx-1.9.15
    ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=/usr/local/src/pcre-8.40
    --with-zlib=/usr/local/src/zlib-1.2.11
    --with-openssl=/usr/local/src/openssl-1.0.2k
    make
    make install

    //注: pcre、zlib、openssl后面的路径是源码的路径,不是安装目录。

    nginx的configure命令支持以下参数:

    • --prefix=path    定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用 /usr/local/nginx。
    • --sbin-path=path 设置nginx的可执行文件的路径,默认为  prefix/sbin/nginx.
    • --conf-path=path  设置在nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf.
    • --pid-path=path  设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid.
    • --error-log-path=path 设置主错误,警告,和诊断文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为prefix/logs/error.log.
    • --http-log-path=path  设置主请求的HTTP服务器的日志文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默认情况下,文件名 为prefix/logs/access.log.
    • --user=name  设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的用户名是nobody。
    • --group=name  设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的为非特权用户。
    • --with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
    • --with-poll_module --without-poll_module 启用或禁用构建一个模块来允许服务器使用poll()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
    • --without-http_gzip_module — 不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。
    • --without-http_rewrite_module  不编译重写模块。编译并运行此模块需要PCRE库支持。
    • --without-http_proxy_module — 不编译http_proxy模块。
    • --with-http_ssl_module — 使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。
    • --with-pcre=path — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 - 8.30)需要从PCRE网站下载并解压。其余的工作是Nginx的./ configure和make来完成。正则表达式使用在location指令和 ngx_http_rewrite_module 模块中。
    • --with-pcre-jit —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。
    • --with-zlib=path —设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.5)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模块需要使用zlib 。
    • --with-cc-opt=parameters — 设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".
    • --with-ld-opt=parameters —设置附加的参数,将用于在链接期间。例如,当在FreeBSD下使用该系统的PCRE库,应指定:--with-ld-opt="-L /usr/local/lib"

    安装成功后:

    netstat -ano|grep 80 查看是否有进程占用80端口

    不被占用时启动Nginx:

    /usr/local/nginx/nginx     //前面设置的nginx可执行文件路径

    在浏览器输入机器IP地址:

    显示以上内容表示已经安装成功了。

    稍微设置下nginx配置:

    vim /usr/local/nginx/nginx.conf

    一般来说nginx 配置文件中对优化比较有作用的为以下几项:

    1. worker_processes 8;

    nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。

    2. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

    为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将一
    个进程分配到多个cpu。

    3. worker_rlimit_nofile 65535;

    这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文
    件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

    现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。

    这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

    查看linux系统文件描述符的方法:

    [root@web001 ~]# sysctl -a | grep fs.file

    fs.file-max = 789972

    fs.file-nr = 510 0 789972

    4. use epoll;

    使用epoll 的I/O 模型

    (

    补充说明:

    与apache相类,nginx针对不同的操作系统,有不同的事件模型

    A)标准事件模型
    Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
    B)高效事件模型 
    Kqueue使用于 FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X. 使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
    Epoll: 使用于Linux内核2.6版本及以后的系统。

    /dev/poll:使用于 Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。

    Eventport:使用于 Solaris 10. 为了防止出现内核崩溃的问题, 有必要安装安全补丁。

    )

    5. worker_connections 65535;

    每个进程允许的最多连接数, 理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections。

    6. keepalive_timeout 60;

    keepalive 超时时间。

    7. client_header_buffer_size 4k;

    客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。

    分页大小可以用命令getconf PAGESIZE 取得。

    [root@web001 ~]# getconf PAGESIZE

    4096

    但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。

    8. open_file_cache max=65535 inactive=60s;

    这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。

    9. open_file_cache_valid 80s;

    这个是指多长时间检查一次缓存的有效信息。

    10. open_file_cache_min_uses 1;

    open_file_cache 指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。

  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/chenwh/p/6560340.html
Copyright © 2011-2022 走看看