Nginx的安装和卸载
一.安装(centos)
1,安装一些依赖包,因为nginx是通过C语言来写成的:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2,下载Nginx安装包
yum install wget && wget https://nginx.org/download/nginx-1.16.1.tar.gz
3,解压缩包
tar -zxvf nginx-1.16.1.tar.gz nginx
4,将文件移到/usr/local/目录下
mv nginx /usr/local/
5,配置编译环境
先进入到nginx目录中 cd /usr/local/nginx/ 找到有一个configure的可执行文件 ./configure
6.编译安装
make && make install
7.看下目录结构
tree nginx
备注:
备注: 上述我们用到的一个指令 tree,该指令可以将我们指定的目录以树状结构展示出来。如果没有这个指令,可以通过以下指令进行安装。 yum install tree
重点目录和文件如下:
目录/文件 说明 备注
conf 配置文件的存放目录
conf/nginx.conf Nginx的核心配置文件 conf下有很多nginx的配置文件,我们主要操作这个核心配置文件
html 存放静态资源(html, css, ) 部署到Nginx的静态资源都可以放在html目录中
logs 存放nginx日志(访问日志、错误日志等)
sbin/nginx 二进制文件,用于启动、停止Nginx服务
————————————————
至此Nginx就已经安装完毕。
二.常用命令
Nginx中,我们的二进制可执行文件(nginx)存放在sbin目录下,虽然只有一个可执行文件,但是我们可以通过该指令配合不同的参数达到更加强大的功能。接下来,我们就演示一下Nginx常见指令, 在执行下面的指令时,都需要在/usr/local/nginx/sbin/目录下执行。
1.看版本
./nginx -v
2.检查配置文件
修改了nginx.conf核心配置文件之后,在启动Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:
./nginx -t
3.启动
./nginx
启动之后,我们可以通过ps -ef指令来查看nginx的进程是否存在。
注意: nginx服务启动后,默认就会有两个进程。
注意: 要想正常访问Nginx,需要关闭防火墙或开放指定端口号,执行的指令如下: A. 关闭防火墙 systemctl stop firewalld B. 开放80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
4.停止
./nginx -s stop
再次看下进程: ps aux|grep nginx
5.重新加载
当修改了Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:
./nginx -s reload
设置环境变量
在上述我们在使用nginx命令在进行服务的启动、停止、重新加载时,都需要用到一个指令nginx,而这个指令是在nginx/sbin目录下的,我们每一次使用这个指令都需要切换到sbin目录才可以,使用相对繁琐。那么我们能不能在任意目录下都可以执行该指令来操作nginx呢?答案是可以的,配置nginx的环境变量即可。
通过vim编辑器,打开/etc/profile文件, 在PATH环境变量中增加nginx的sbin目录,如下:
修改完配置文件之后,需要执行 source /etc/profile 使文件生效。 接下来,我们就可以在任意目录下执行nginx的指令了,如:
三.通过systemctl方法来启动nginx(可以设置开机自启动)
首先我们需要了解下centos系统中的systemd的unit文件配置。
参考: https://www.cnblogs.com/linuxprobe/p/15690895.html
然后,通过自己创建一个nginx.service来实现通过systemctl命令启动nginx。
1.创建nginx.service
cd /lib/systemd/system/
touch nginx.service
vim nginx.service
2.配置unit文件
[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStartpre=/usr/local/nginx/sbin/nginx -c t /usr/local/nginx/conf/nginx.conf
ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]:服务的说明 Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式
ExecStartpre是检查配置文件 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
3.重新加载配置文件
systemctl daemon-reload
4.nginx服务常用操作
#查看nginx服务状态
systemctl status nginx.service
#启动nginx服务
systemctl start nginx.service
#停止nginx服务
systemctl stop nginx.service
#重启nginx服务
systemctl restart nginx.service
#重新读取nginx配置(这个最常用, 不用停止nginx服务就能使修改的配置生效)
systemctl reload nginx.service
5.可设置开机自启动
加入开机自启动
# systemctl enable nginx
如果不想开机自启动了,可以使用下面的命令取消开机自启动
# systemctl disable nginx
四.卸载nginx
1,先看下nginx是否在运行中
ps aux|grep nginx
2,如果在运行中,则停止
nginx -s stop 或者直接杀死进程 pkill nginx或 kill -9 进程号
3,找到所有nginx有关文件
find / -name nginx
4,删除有关nginx的文件(linux中一切都文件)
命令1:rm -rf file /usr/local/nginx* 命令2:find / -name nginx*
5,卸载nginx的有关依赖
yum remove nginx