记一次重装nginx时遇到的坑

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

Nginx官网:http://nginx.org/

前言

最近在树霉派上折腾nginx配置文件时, 因为错改了配置文件无法复原导致了程序无法使用。最后干脆卸载了nginx。最后重新安装的时候始终安装报错。但最终还是搞好了,苦于出坑前没有截图,但又怕以后最到同样问题没有相关的解决思路,所以还是根据回想记录一点心得备用吧。

卸载

使用Debian下的包管理工具apt来安装nginx

sudo apt-get remove nginx

在上面命令结束后执行,主要是卸载删除Nginx的不再被使用的依赖包

sudo apt-get autoremove

删除nginx的所有配置文件及文件夹

sudo rm -rf /etc/nginx

安装

同样使用Debian下的包管理工具apt来安装nginx

sudo apt update
sudo apt-get install nginx

以上命令执行以后, 安装命令弄死就是不能正常执行完成,一直报错。后悔没有截个图呀@~!~~

好吧,我算是入坑了吧!

刨坑

既然有问题我们就解决吧,那就排查吧

首先:根据网络上的大神提示,查看nginx.service状态

systemctl status nginx.service

第2:怀疑是安装的时候有端口冲突,那查看呗

sudo netstat -nlp

第3:怀疑是卸载nginx的时候卸载不完成,继续使用命令卸载

–以下命令的意思是不保留配置文件卸载

sudo apt-get --purge remove nginx

第4:查看相关的依赖是不是都卸载了

dpkg --get-selections | grep nginx

这里有一些提示了,

libnginx-mod-http-auth-pam                       install
libnginx-mod-http-dav-ext                        install
libnginx-mod-http-echo                          install
libnginx-mod-http-geoip                         install
libnginx-mod-http-image-filter                   install
libnginx-mod-http-subs-filter                    install
libnginx-mod-http-upstream-fair                  install
libnginx-mod-http-xslt-filter                    install
libnginx-mod-mail                            install
libnginx-mod-stream                          install
nginx                                    install
nginx-common                               install
nginx-full                                install

然后使用命令一个一个的卸载,

sudo apt-get --purge remove "包名"

出坑

最后经过反复的刨坑以后,再安装后就正常了。

sudo apt-get install nginx

查看版本号,执行nginx配置文件语法检测

nginx -v

nginx version: nginx/1.14.2

sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

分析

经过多次尝试以后,我发现的正确的卸载方式

  1. sudo apt-get remove nginx # 命令以后,实际上只是 #卸载删除除了配置文件以外的所有文件。这一点也是网上大神诸多大神在入坑以后发现的。
  2. sudo apt-get purge nginx nginx-common # 卸载所有东东,包括删除配置文件。所以这种方式是最彻底的。当然如果你需要保留相关配置文件除外。
  3. sudo apt-get autoremove # 在上面命令结束后执行,主要是卸载删除Nginx的不再被使用的依赖包。
  4. sudo apt-get remove nginx-full nginx-common #卸载删除两个主要的包。

相关的服务命令

  1. 查看nginx进程:
    ps aux|grep nginx
  2. 启动Nginx服务
    service nginx start
  3. 停止Nginx服务
    service nginx stop
  4. 重启Nginx服务
    service nginx stop
  5. Nginx服务的状态
    service nginx stop
  6. 在Nginx服务启动的状态下,重新加载nginx.conf这个配置文件
    service nginx stop