软件下载地址: http://nginx.org/en/download.html

安装使用的版本:nginx-1.20.2.tar.gz

一、nginx 安装与测试

1、先决条件

[root@svr5 data]# yum -y install gcc pcre-devel openssl-devel    # 安装必要的软件包
[root@svr5 data]# rpm -q  gcc pcre-devel openssl-devel           # 检查软件包是否安装成功
gcc-4.4.7-4.el6.x86_64
pcre-devel-7.8-6.el6.x86_64
openssl-devel-1.0.1e-15.el6.x86_64
[root@svr5 data]# 

2、添加 nginx 用户

[root@svr5 data]# useradd -s /sbin/nologin nginx    
 
# 1. 创建这个 nginx 用户是为了启动和运行 nginx 程序 (也就是nginx进程的拥有者是 nginx 用户)
# 2. nginx 用户不需要登录系统, 所以使用 -s /sbin/nologin 指定其内核

3、上传 nginx 源码文件到 /data 目录下,将其解压,并进入解压后的目录

[root@svr5 data]# rz                                # 1. 使用 rz 命令上传文件
 
[root@svr5 data]# 
[root@svr5 data]# tar -zxvf nginx-1.20.2.tar.gz     # 2. 解压 nginx 源码文件
[root@svr5 data]# cd nginx-1.20.2                   # 3. 进入解压目录

4、安装参数的配置

[root@svr5 nginx-1.20.2]# ./configure  \
> --prefix=/usr/local/nginx   \                 # 指定 nginx 主目录
> --user=nginx  \                               # 指定安装的用户为 nginx 用户
> --group=nginx  \                              # 指定安装的组为 nginx 组
> --with-http_stub_status_module  \             # 指定安装监控模块
> --with-http_ssl_module                        # 指定安装 SSL 模块



................省略中间的输出...............
................输出结果中 比较有用的信息...............
................如: 安装完成后的 nginx 的主目录, 主程序,配置文件,日志文件的路径等.......... 
Configuration summary
 + using system PCRE library
 + using system OpenSSL library
 + md5: using OpenSSL library
 + sha1 library is not used
 + using system zlib library

 nginx path prefix: "/usr/local/nginx"
 nginx binary file: "/usr/local/nginx/sbin/nginx"
 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"

注: 安装时的参数 在最后补充说明

5、编译并安装

[root@svr5 nginx-1.20.2]# make && make install

6、查看当前版本

[root@svr5 nginx-1.20.2]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.20.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.1.1l  24 Aug 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/usr/local/headers-more-nginx-module-0.33 --with-openssl=/usr/local/ssl/openssl-1.1.1l

[root@svr5 nginx-1.20.2]# sbin/nginx -v
nginx version: nginx/1.20.2

二、补充说明

1、安装或升级时的指定配置信息

[root@svr5 nginx-1.20.2]# pwd
/data/nginx-1.20.2                               # 1. 进去到 nginx 源码主目录
[root@svr5 nginx-1.20.2]# ./configure --help      # 2. 查看配置的帮助信息

image.png

2、nginx 主程序(/usr/local/nginx/sbin/nginx)

注:

  1. nginx 服务默认情况下是没有启动和停止服务的脚本的

  2. nginx 服务启动

[root@svr5 sbin]# netstat -naptu | grep nginx
[root@svr5 sbin]# /usr/local/nginx/sbin/nginx      # 启动 nginx 服务
[root@svr5 sbin]# netstat -naptu | grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      13483/nginx         
[root@svr5 sbin]# 
  1. nginx 服务关闭

方式1:在主程序(/usr/local/nginx/sbin/nginx)上加参数( -s stop ) 方式关闭

[root@svr5 sbin]# netstat -naptu | grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      13483/nginx         
[root@svr5 sbin]# /usr/local/nginx/sbin/nginx -s stop        # 停止 nginx 服务
[root@svr5 sbin]# netstat -naptu | grep nginx
[root@svr5 sbin]# 

方式2:使用 ps + kill 命令关闭

[root@svr5 sbin]# /usr/local/nginx/sbin/nginx              # 1. 启动 nginx 服务
[root@svr5 sbin]# ps aux | grep nginx | grep -v "grep"     # 2. 查看主程序的pid, 这里是 13523
root      13523  0.0  0.0  45032  1032 ?        Ss   15:45   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     13524  0.0  0.0  45452  1580 ?        S    15:45   0:00 nginx: worker process      
[root@svr5 sbin]# netstat -naput | grep nginx              # 3. 端口也处于监听状态
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      13523/nginx         
[root@svr5 sbin]# 
[root@svr5 sbin]# 
[root@svr5 sbin]# kill 13523                               # 4. 杀死 nginx 服务的主程序
[root@svr5 sbin]# 
[root@svr5 sbin]# 
[root@svr5 sbin]# ps aux | grep nginx | grep -v "grep"     # 5. 再次确认nginx 服务进程已经被杀死
[root@svr5 sbin]# netstat -naput | grep nginx              # 6. 再次确认 nginx 服务端口已经被关闭
[root@svr5 sbin]# 
  1. 主程序 ( /usr/local/nginx/sbin/nginx ) 的帮助信息
[root@svr5 sbin]# /usr/local/nginx/sbin/nginx -h
nginx version: nginx/1.20.2
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
 
Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/nginx/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file
 
[root@svr5 sbin]#