CentOS8.4 安装Nginx1.20.2

 1、下载版本并解压
http://nginx.org/

 

其中Mainline version为开发版、Stable version为稳定版、Legacy versions为历史版本, 我们选择稳定版复制此链接,下载到我们自己的软件包如/mydata/目录下

# cd /mydata/
# wget http://nginx.org/download/nginx-1.20.2.tar.gz

2、安装依赖

查看系统核心版本:
# cat /etc/redhat-release
CentOS Linux release 8.4.2105

安装依赖
# yum -y install  gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel firewalld autoconf automake

3、创建www用户和www用户组

# 查看当前系统是否已经存在用户www
cat /etc/passwd | grep www
# 查看当前系统是否存在用户组www
cat /etc/group | grep nginx

// 创建www用户和用户组(用户组会自动创建),
# useradd -M -s /sbin/nologin www 创建用户www,并且没有登录权限 -M 不创建家目录
# cat /etc/passwd 
# cat /etc/group

4、编辑配置项生成安装文件 Makefile

# cd /mydata
# tar -zxvf nginx-1.20.2.tar.gz          //解压nginx
# cd ./nginx-1.20.2/
# ls -al
# ./configure --prefix=/usr/local/nginx --user=www --group=www  --with-http_ssl_module --with-http_realip_module  --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module 

最后出现如图:


编辑完成后:再次  # ls -al ,此时就多了一个 Makefile的文件 (还有一个objs目录,),如果出错,解决错误后将这两个删除再重新执行即可。

5、继续make&&make install 安装nginx

# make 
出现如下:
...
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
	-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
	-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
	-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \
	< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory '/mydata/nginx-1.20.2'

//继续 
# make install 
出现如下:
...
test -d '/usr/local/nginx/html' \
	|| cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
	|| mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory '/mydata/nginx-1.20.2'

OK 安装成功

验证:
# cd /usr/local/nginx/sbin/
# ./nginx -V 
出现版本号信息
nginx version: nginx/1.20.2
和相关安装信息,说明安装成功

也可以使用 -t参加检测相关配置文件是否有语法错误 
# ./nginx -t  

其中:
/usr/local/nginx/    为nginx的安装目录
/usr/local/nginx/conf   为nginx的配置文件目录
/usr/local/nginx/conf/nginx.conf        为默认配置文件
/usr/local/nginx/html  为nginx的默认站点目录
/usr/local/nginx/sbin/nginx  为nginx的可执行目录
/usr/local/nginx/logs 为nginx的日志目录
/usr/local/nginx/logs/error.log        为错误日志文件

6、Nginx的启动与停止  
        nginx安装完成后启动文件为/usr/local/nginx/sbins/nginx ,此为一个二进制文件。在没有设置启动文件之前,只能通过此文件进行启动、停止等
(1)启动nginx  

启动nginx
# /usr/local/nginx/sbin/nginx                          //启动nginx

浏览器访问:http://106.12.2.195/ 出现


OK默认站点可以方法,nginx服务已经启动

(2)查看nginx的运行状态

查看nginx的运行状态
# ps aux | grep nginx                //ps aux  列出系统所有的进程
出现如下:
root      3228  0.0  0.0  46088  1136 ?        Ss   01:21   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     3229  0.0  0.0  48628  1996 ?        S    01:21   0:00 nginx: worker process
root      3231  0.0  0.0 112708   980 pts/0    S+   01:21   0:00 grep --color=auto nginx
说明启动成功
其中第一行为nginx的主进程(master) 进程PID为3228

查看端口占用情况
# netstat -tlnp
出现
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3228/nginx: master
也说明nginx正常工作

(3)停止nginx

# /usr/local/nginx/sbin/nginx -s stop        //强制停止 立即停止
# /usr/local/nginx/sbin/nginx -s quit        //从容停止,在完成当前任务后再停止
# kill  3228                            //杀死进程平滑停止 3228为nginx主进程的PID(可以通过ps aux | grep nginx 命令查看,第一条master对应的是)
或 killall nginx                        //杀死进程平滑停止

(4)重启nginx

# /usr/local/nginx/sbin/nginx -s reload   //平滑重启,必须在nginx已经启动的状态下才能执行。

7、创建service文件

# vim /etc/systemd/system/nginx.service

输入一下内容: 
---------start( 注意换成你自己的安装路径)------
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
--------------- end ------------

设置可执行权限
# chmod +x /etc/systemd/system/nginx.service

 扩展:
systemd有系统和用户区分;系统(/usr/lib/systemd/system/)、用户(/etc/lib/systemd/user/).一般系统管理员手工创建的单元文件建议存放在/etc/systemd/system/目录下面。

[Unit]

Description : 服务的简单描述

Documentation : 服务文档

Before、After:定义启动顺序。Before=xxx.service,代表本服务在xxx.service启动之前启动。After=xxx.service,代表本服务在xxx.service之后启动。

Requires:这个单元启动了,它需要的单元也会被启动;它需要的单元被停止了,这个单元也停止了。

Wants:推荐使用。这个单元启动了,它需要的单元也会被启动;它需要的单元被停止了,对本单元没有影响。

[Service]

Type=simple(默认值):systemd认为该服务将立即启动。服务进程不会fork。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型。

Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便systemd能够跟踪服务的主进程。

Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。

Type=notify:与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。

Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。

Type=idle: systemd会等待所有任务(Jobs)处理完成后,才开始执行idle类型的单元。除此之外,其他行为和Type=simple 类似。

PIDFile:pid文件路径

ExecStart:指定启动单元的命令或者脚本,ExecStartPre和ExecStartPost节指定在ExecStart之前或者之后用户自定义执行的脚本。Type=oneshot允许指定多个希望顺序执行的用户自定义命令。

ExecReload:指定单元停止时执行的命令或者脚本。

ExecStop:指定单元停止时执行的命令或者脚本。

PrivateTmp:True表示给服务分配独立的临时空间

Restart:这个选项如果被允许,服务重启的时候进程会退出,会通过systemctl命令执行清除并重启的操作。

RemainAfterExit:如果设置这个选择为真,服务会被认为是在激活状态,即使所以的进程已经退出,默认的值为假,这个选项只有在Type=oneshot时需要被配置。

[Install]

Alias:为单元提供一个空间分离的附加名字。

RequiredBy:单元被允许运行需要的一系列依赖单元,RequiredBy列表从Require获得依赖信息。

WantBy:单元被允许运行需要的弱依赖性单元,Wantby从Want列表获得依赖信息。

Also:指出和单元一起安装或者被协助的单元。

DefaultInstance:实例单元的限制,这个选项指定如果单元被允许运行默认的实例。

配置 SysV

首先开启nginx服务
# /usr/local/nginx/sbin/nginx
然后执行
# systemctl daemon-reload         //重启systemd
# systemctl enable nginx.service        //开机自启动

出现 Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /etc/systemd/system/nginx.service.  
在/etc/systemd/system/multi-user.target.wants/目录下新建一个/usr/lib/systemd/system/nginx.service 文件的链接。

#启动服务(因为上面已经开启,这里不再开启)
# systemctl start nginx.service

再次# shutdown -r  now  服务器重启后,nginx自动开启了。 到此,整个安装完成。

附:nginx常用命令

//原始命令
# /usr/local/nginx/sbin/nginx  启动服务
# /usr/local/nginx/sbin/nginx -s stop  停止服务
# /usr/local/nginx/sbin/nginx -s reload  平滑重启(必须在开启的状态下才可以)
# /usr/local/nginx/sbin/nginx -t   检查语法错误
# /usr/local/nginx/sbin/nginx -v 查看Nginx版本(小v)
# /usr/local/nginx/sbin/nginx -V 查看Nginx版本(大写V)
# /usr/local/nginx/sbin/nginx -V 2>&1 | tr -- - '\n' | grep module # 查看安装了那些模块

// Systemctl 命令
# systemctl start nginx.service   (service nginx start)  
# systemctl stop nginx.service 停止    (service nginx stop)
# systemctl restart nginx.service  重启    (service nginx restart)
# systemctl reload nginx.service 重载 (service nginx reload )
# systemctl status nginx.service    (service nginx status)
#查看日志
$ sudo journalctl -f -u nginx.service

// 快捷方式
# systemctl start nginx #启动
# systemctl stop nginx #停止
# systemctl reload nginx #重启
# systemctl status nginx #查看服务状态

# netstat -tlnp      //查看端口,仅显示服务中的
# netstat -antup      //查看所有端口
# netstat -antup|grep nginx      //查看nginx端口
# ps aux               //查看所有进程
# ps aux | grep nginx     //查看nginx的进程
# kill  3228                            //杀死进程平滑停止 3228为nginx主进程的PID(可以通过ps aux | grep nginx 命令查看,第一条master对应的是)
或 killall nginx                        //杀死进程平滑停止

卸载:

# 停止服务
# systemctl stop nginx.service 

# 删除
# rm -rf /usr/local/nginx/
# rm -rf /etc/systemd/system/multi-user.target.wants/nginx.service

友情推荐:

Nginx配置详情

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值