软件下载地址: 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. 查看配置的帮助信息
2、nginx 主程序(/usr/local/nginx/sbin/nginx)
注:
-
nginx 服务默认情况下是没有启动和停止服务的脚本的
-
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]#
- 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]#
- 主程序 ( /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]#