centos编译安装nginx

  1. 下载并解压

    1
    2
    $ curl -o https://nginx.org/download/nginx-1.14.2.tar.gz
    $ tar zxvf nginx-1.14.2.tar.gz
  2. 执行configure命令,生成Makefile文件

    1
    2
    3
    4
    # 查看编译参数
    $ ./configure --help
    # 编译时启用四个模块
    $ ./configure --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_stub_status_module
  • 若出现./configure: error: C compiler cc is not found错误,则执行:

    1
    $ yum -y install gcc gcc-c++ autoconf automake make
  • 若出现./configure: error: the HTTP rewrite module requires the PCRE library.错误,则执行:

    1
    2
    3
    4
    5
        $ yum install pcre-devel 
    ```
    - 若出现`./configure: error: SSL modules require the OpenSSL library.`错误,则执行:
    ```shell
    $ yum -y install openssl openssl-devel
  • 若出现./configure: error: the GeoIP module requires the GeoIP library.错误,则执行:

    1
    $ yum -y install GeoIP-devel

看到如下提示表示生成成功:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library

nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"

  1. 编译安装
    1
    $ make && make install

PS: 可以通过make clean来清除Makefile

如果一切正常,则nginx会被安装到/usr/local/nginx目录,该目录主要包含 confhtmllogssbin 四个目录。

  • conf 存放了nginx的所有配置文件。其中,nginx.conf文件是nginx服务器的主配置文件,其他配置文件是用来配置nginx的相关功能,比如,fastcgi.cong和fastcgi_params用来配置fastcgi。
  • html 该目录存放了nginx服务器在运行过程中调用的一些html文件。index.html文件是在服务器运行成功后默认返回的网页;50x.html是在nginx服务器出现某些问题时将会调用该页面。
  • logs 顾名思义,用来存放nginx服务器的日志。因为目前服务器还未启动,所以该目录为空。
  • sbin 只有一个nginx文件,该文件就是nginx服务器的主程序了。
  1. 启动nginx

    1
    $ ./usr/local/nginx/sbin/nginx
  2. 是否成功

  • 访问ip,出现下图表示成功
  • ps验证:显示已经启动成功
    1
    2
    3
    4
    $ ps -ef|grep nginx
    root 8483 1 0 21:21 ? 00:00:00 nginx: master process ./nginx
    nobody 8484 8483 0 21:21 ? 00:00:00 nginx: worker process
    root 13186 12897 0 22:17 pts/1 00:00:00 grep --color=auto nginx
  1. 目前只能用/usr/local/nginx/sbin/nginx,不能全局使用 nginx. 需要在系统环境变量添加一行代码,首先打开系统环境变量文件:
    1
    $ vi /etc/profile

在末尾追加一行PATH=$PATH:/usr/local/webserver/nginx/sbin, :wq 保存后,执行下面命令即可立即生效:
source /etc/profile

  1. 常用命令
    1
    2
    3
    4
    5
    6
    nginx  #启动nginx
    nginx -s quit #快速停止nginx
    nginx -V #查看版本,以及配置文件地址
    nginx -v #查看版本
    nginx -s reload|reopen|stop|quit #重新加载配置|重启|快速停止|安全关闭nginx
    nginx -h #帮助