CentOS 7 Nginx 安装与配置指南
一、前言
Nginx 作为一款高性能的 HTTP 和反向代理服务器,广泛应用于负载均衡、静态资源服务以及作为反向代理等场景,本文将详细介绍如何在 CentOS 7 上安装和配置 Nginx,包括其依赖环境的安装、Nginx 的安装步骤、配置文件的编写与修改、防火墙设置以及启动和停止 Nginx 服务等内容。

二、安装 Nginx 及其依赖环境
1. 更新系统软件包
在安装 Nginx 之前,首先需要确保系统的软件包是最新的,打开终端并执行以下命令:
- sudo yum update y
2. 安装 EPEL(Extra Packages for Enterprise Linux)源
Nginx 官方提供的 YUM 仓库中有适用于 CentOS 的预编译包,可以方便地进行安装,执行以下命令添加 EPEL 源:
- sudo yum install y epelrelease
3. 安装 Nginx
通过 YUM 安装 Nginx:

- sudo yum install y nginx
安装完成后,默认的网站目录为/usr/share/nginx/html
,默认的配置文件路径为/etc/nginx/nginx.conf
,自定义配置文件目录为/etc/nginx/conf.d/
。
三、配置 Nginx
1. 开启端口 80 和 443
如果服务器启用了防火墙,需要开放 Web 服务的端口(80 和 443):
- sudo firewallcmd permanent zone=public addservice=http
- sudo firewallcmd permanent zone=public addservice=https
- sudo firewallcmd reload
对于阿里云 ECS 服务器,还可以通过控制台安全组设置来开放相应端口。
2. 安装免费 SSL 证书(以 Let's Encrypt 为例)
首先安装 Certbot 客户端工具:

- sudo yum install y epelrelease
- sudo yum install y certbot python2certbotnginx
申请 SSL 证书并将网站添加到 Certbot 的管理中:
- sudo certbot nginx d your_domain m your_email
Certbot 会自动配置 Nginx 使用 HTTPS,并设置自动续期任务(certbot renew)。
3. 配置 Nginx
删除默认的虚拟主机配置:
- sudo rm /etc/nginx/conf.d/default.conf
在/etc/nginx/conf.d/
目录下创建新的虚拟主机配置文件default.conf
:
- sudo vi /etc/nginx/conf.d/default.conf
添加以下内容:
- server {
- listen 80;
- server_name your_domain www.your_domain;
- location / {
- root /usr/share/nginx/html;
- index index.html index.htm;
- }
- }
配置 HTTPS:
- server {
- listen 443 ssl;
- server_name your_domain www.your_domain;
- ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
- ssl_session_timeout 5m;
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- ssl_ciphers ECDHERSAAES128GCMSHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
- ssl_prefer_server_ciphers on;
- location / {
- root /usr/share/nginx/html;
- index index.html index.htm;
- }
- }
保存并退出编辑器。
四、操作 Nginx
1. 启动 Nginx
使用 systemctl 命令启动 Nginx:
- sudo systemctl start nginx
2. 停止 Nginx
停止 Nginx:
- sudo systemctl stop nginx
3. 重启 Nginx
在修改配置文件后,通过重启 Nginx 使更改生效:
- sudo systemctl restart nginx
4. 查看 Nginx 状态
检查 Nginx 运行状态:
- sudo systemctl status nginx
或使用以下命令查看 Nginx 版本:
- nginx v
5. 设置开机自启 Nginx
设置 Nginx 开机自启:
- sudo systemctl enable nginx
取消开机自启:
- sudo systemctl disable nginx
五、常见问题及解决措施
Q1. Nginx 无法启动,提示“[emerg] getpwnam(\"nginx\") failed”错误怎么办?
A1. 这个错误通常是因为系统中没有名为“nginx”的用户导致的,可以通过以下步骤解决:
1、创建 nginx 用户:
- sudo useradd s /sbin/nologin M nginx
2、确保 nginx 用户拥有正确的权限:
- sudo chown R nginx:nginx /var/lib/nginx
3、重新启动 Nginx:
- sudo systemctl restart nginx
Q2. nginx 配置文件测试失败怎么办?
A2. Nginx 配置文件有误,可以使用以下命令进行测试:
- sudo nginx t
根据提示信息修正配置文件中的错误,然后再次测试,直到显示“syntax is ok”和“test is successful”。