HCRM博客

如何在CentOS 7上安装Nginx?

在CentOS 7上安装Nginx是一个相对简单的过程,但需要遵循一系列步骤来确保安装成功并正确配置,以下是详细的指南:

Nginx安装与配置指南

一、准备工作

在开始之前,请确保你拥有sudo权限的用户登录到服务器,并且服务器中没有其他服务正在使用80(HTTP)和443(HTTPS)端口,防止端口被占用,造成Nginx无法正常启动。

二、安装Nginx

1. 添加EPEL仓库

Nginx不在默认的yum源中,可以通过添加EPEL仓库来安装Nginx,运行以下命令来安装EPEL仓库:

sudo yum install epelrelease y

2. 安装Nginx

通过yum命令安装Nginx:

sudo yum install nginx y

如果这是您第一次从EPEL仓库中安装软件,yum可能会提示您导入GPG key,输入y继续。

3. 启动Nginx

安装完成后,可以通过以下命令来设置开机启动和运行Nginx服务:

设置Nginx开机启动
sudo systemctl enable nginx
启动Nginx
sudo systemctl start nginx

4. 验证Nginx是否成功启动

通过运行以下命令,来检查Nginx的运行状态:

sudo systemctl status nginx

你应该会看到似以下的输出,表示Nginx已经成功启动并在运行:

● nginx.service The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 20180312 16:12:48 UTC; 2s ago
     Docs: man:nginx(8)
 Main PID: 1680 (nginx)
   CGroup: /system.slice/nginx.service
           ├─1680 nginx: master process /usr/sbin/nginx
           └─1681 nginx: worker process

5. 打开防火墙端口

如果你的服务器开启了防火墙,则需要同时打开80(HTTP)和443(HTTPS)端口:

打开HTTP端口
sudo firewallcmd permanent zone=public addservice=http
打开HTTPS端口
sudo firewallcmd permanent zone=public addservice=https
重新加载防火墙配置
sudo firewallcmd reload

6. 验证Nginx安装

在浏览器中打开 http://YOUR_IP,您将看到默认的Nginx欢迎页面,类似于下图所示:

如何在CentOS 7上安装Nginx?-图1

三、Nginx的配置文件和最佳实践

1. 配置文件目录

通过上述方式安装的Nginx,所有相关的配置文件都在/etc/nginx/ 目录中,Nginx的主配置文件是/etc/nginx/nginx.conf

2. 虚拟主机配置

为了使Nginx配置更易于维护,建议为每个服务(域名)创建一个单独的配置文件,每一个独立的虚拟主机配置文件可以放在/etc/nginx/conf.d/ 目录中,可以为一个名为www.abc.com的网站创建以下配置文件:

server {
    listen       80;
    server_name  www.abc.com abc.com;
    location / {
        root   /home/www/www.abc.com;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

将上述配置保存为/etc/nginx/conf.d/www.abc.com.conf,然后重启Nginx以使配置生效:

sudo systemctl restart nginx

四、常见问题及解决方案

Q1:如何更改Nginx默认监听的端口?

A1:要更改Nginx默认监听的端口,你需要编辑Nginx的主配置文件或相应的虚拟主机配置文件,要将默认的80端口改为8080,可以修改/etc/nginx/nginx.conf 中的listen 指令:

server {
    listen       8080;
    server_name  localhost;
    # other configurations...
}

然后重启Nginx服务:

sudo systemctl restart nginx

注意,更改监听端口后,还需要确保防火墙开放新的端口:

sudo firewallcmd permanent zone=public addport=8080/tcp
sudo firewallcmd reload

Q2:如何配置Nginx作为反向代理?

A2:Nginx可以很方便地配置为反向代理,假设你想将来自端口80的请求转发到后端服务器(192.168.1.100:8080),可以按以下步骤操作:

1、编辑Nginx配置文件:通常可以在/etc/nginx/conf.d/ 目录下创建一个新的配置文件,例如reverseproxy.conf

server {
    listen       80;
    server_name  yourdomain.com;
    location / {
        proxy_pass http://192.168.1.100:8080;
        proxy_set_header Host $host;
        proxy_set_header XRealIP $remote_addr;
        proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
        proxy_set_header XForwardedProto $scheme;
    }
}

2、重启Nginx:保存文件后,重启Nginx以使配置生效:

sudo systemctl restart nginx

这样,所有指向yourdomain.com 的HTTP请求都将被转发到192.168.1.100:8080,你可以根据需要调整proxy_passproxy_set_header 等指令来满足不同的反向代理需求。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/13108.html

分享:
扫描分享到社交APP
上一篇
下一篇