解决Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无default.conf文件

  • Post category:Linux

如果在CentOS 7上安装Nginx,有时候可能会出现“Welcome to nginx on Fedora!”的提示,而且conf.d目录下也找不到default.conf文件。这通常是由于安装Nginx之前未完全删除以前安装的HTTPd(Apache)软件造成的。

以下是解决该问题的完整攻略:

  1. 确认是否安装了httpd软件:
    rpm -qa| grep httpd
    如果输出中有httpd相关的软件,则需要将其卸载掉:
    sudo yum remove httpd*

  2. 清除旧的yum元数据并重新安装Nginx:
    sudo yum clean all
    sudo yum install nginx

接下来,您可以尝试在浏览器上访问Nginx的默认安装页,应该已经没有看到“Welcome to nginx on Fedora!”的提示了。

示例1:

假设我们在安装之前已经安装了httpd和httpd-devel,然后安装了Nginx。此时通过命令nginx -v可以看到Nginx已经成功安装,但是在浏览器中访问时会看到“Welcome to nginx on Fedora!”的提示。

通过运行rpm -qa| grep httpd我们可以发现这里的确安装了httpd相关的软件:

httpd-devel-2.4.6-93.el7.centos.x86_64
httpd-tools-2.4.6-93.el7.centos.x86_64
httpd-2.4.6-93.el7.centos.x86_64

此时我们需要将这些软件卸载掉,可以运行sudo yum remove httpd*进行卸载。

然后运行sudo yum clean all清除旧的yum元数据,并重新安装Nginx:sudo yum install nginx

最后在浏览器中访问Nginx的默认安装页,应该已经没有看到“Welcome to nginx on Fedora!”的提示了。

示例2:

如果您有多个CentOS 7服务器,可以使用Ansible自动化工具来批量卸载httpd软件并重新安装Nginx。

例如,新建一个名为“nginx.yml”的YAML文件,内容如下:

---
- hosts: all
  remote_user: centos
  become: yes
  tasks:
    - name: Uninstall httpd
      yum: name=httpd* state=absent
    - name: Clean yum metadata
      command: sudo yum clean all
    - name: Install Nginx
      yum: name=nginx state=latest

这里假设远程主机的用户名为“centos”,使用sudo权限进行安装和卸载,且所有主机都已经配置好SSH连接。

然后运行以下命令来执行Ansible Playbook:

ansible-playbook nginx.yml -i inventory_file

其中,“inventory_file”为包含要执行操作的所有主机的文件。执行该命令后,Ansible将自动卸载httpd软件并重新安装Nginx,使您的所有CentOS 7服务器都能正常访问Nginx。