news 2026/6/18 16:33:08

CentOS 如何安装并配置 Nginx

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS 如何安装并配置 Nginx

从零开始,在 CentOS 上装好 Nginx,配置好虚拟主机,十分钟上线。


一、为什么选 Nginx?

如果你在 CentOS 上搭建 Web 服务,Nginx几乎是首选。

对比项NginxApache
并发能力极强,事件驱动架构较弱,进程/线程模型
内存占用低(约 2~3MB/进程)
静态文件非常快一般
反向代理原生支持,配置简单需要额外模块
配置语法简洁清晰相对复杂

一句话:高性能、低资源、易配置。适合做 Web 服务器、反向代理、负载均衡。


二、安装前准备

开始之前,确认以下条件:

  • ✅ CentOS 7 / 8 / 9(本文以CentOS 7为主,8/9 差异会标注)
  • ✅ root 或 sudo 权限
  • ✅ 系统已更新:sudo yum update -y
  • ✅ 关闭 SELinux(可选但推荐,避免权限问题):
sudosetenforce0sudosed-i's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config

三、安装 Nginx

CentOS 7 — 使用 EPEL 源(推荐)

CentOS 7 官方源里的 Nginx 版本较老(1.16),建议用 EPEL 源安装最新稳定版。

# 1. 安装 EPEL 源sudoyuminstall-yepel-release# 2. 安装 Nginxsudoyuminstall-ynginx# 3. 查看安装的版本nginx-v

输出类似:nginx version: nginx/1.24.0


CentOS 8 / 9 — 使用 AppStream 源

sudodnfinstall-ynginx

CentOS 8/9 自带的 Nginx 版本已经比较新(1.18+),一般不需要额外源。


如果需要最新版(所有版本通用)

使用官方源安装最新稳定版:

# CentOS 7sudoyuminstall-yyum-utilssudoyum-config-manager --add-repo https://nginx.org/packages/centos/7/x86_64/sudoyuminstall-ynginx# CentOS 8/9sudodnfinstall-ydnf-plugins-coresudodnf config-manager --add-repo https://nginx.org/packages/centos/8/x86_64/sudodnfinstall-ynginx

⚠️ 用官方源后,系统自带的yum install nginx会被覆盖。如需切回,删除/etc/yum.repos.d/nginx.repo即可。


四、启动 Nginx 并设置开机自启

# 启动sudosystemctl start nginx# 设置开机自启sudosystemctlenablenginx# 查看状态sudosystemctl status nginx

看到active (running)就说明启动成功了。


五、配置防火墙

CentOS 默认开启 firewalld,需要放行 HTTP 和 HTTPS 端口:

sudofirewall-cmd--permanent--add-service=httpsudofirewall-cmd--permanent--add-service=httpssudofirewall-cmd--reload

验证:

sudofirewall-cmd --list-all

应该能看到httphttps在 services 列表里。


六、验证安装

在浏览器中访问服务器 IP:

http://你的服务器IP

如果看到 Nginx 默认欢迎页面:

Welcome to nginx!

说明安装成功 ✅

默认网页文件位置:

/usr/share/nginx/html/index.html

七、Nginx 目录结构(先搞清楚文件在哪)

目录用途
/etc/nginx/nginx.conf主配置文件,所有配置从这里开始
/etc/nginx/conf.d/额外配置文件目录,虚拟主机放这里
/usr/share/nginx/html/默认网站根目录
/var/log/nginx/访问日志和错误日志
/var/run/nginx.pidNginx 进程 PID 文件

八、配置虚拟主机(核心)

Nginx 的虚拟主机叫server block,和 Apache 的 VirtualHost 一个意思。

1. 创建网站目录

sudomkdir-p/var/www/example.comsudochown-R$USER:$USER/var/www/example.comsudochmod-R755/var/www/example.com

2. 创建测试页面

echo"<h1>Hello, example.com!</h1>">/var/www/example.com/index.html

3. 创建虚拟主机配置

sudovim/etc/nginx/conf.d/example.com.conf

写入以下内容:

server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html index.htm; location / { try_files $uri $uri/ =404; } # 访问日志(可选) access_log /var/log/nginx/example.com_access.log; error_log /var/log/nginx/example.com_error.log; }
指令含义
listen 80监听 80 端口(HTTP)
server_name绑定的域名,支持多个用空格隔开
root网站根目录
index默认首页文件
try_files找不到文件时返回 404(防止目录遍历)

4. 检查配置是否正确

sudonginx-t

看到以下输出就没问题:

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

5. 重载配置

sudosystemctl reload nginx

reload不中断服务,restart会短暂中断。日常改配置用reload


九、配置 HTTPS(接 Let’s Encrypt 免费证书)

HTTPS 配置和 HTTP 几乎一样,只是多了 SSL 相关指令。

方式一:Certbot 一键配置(最简单)

sudoyuminstall-yepel-releasesudoyuminstall-ycertbot python3-certbot-nginxsudocertbot--nginx-dexample.com-dwww.example.com

按提示输入邮箱,选择是否强制 HTTPS,一条命令搞定证书申请 + Nginx 配置 + 自动重定向

方式二:手动配置

server { listen 443 ssl http2; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; root /var/www/example.com; index index.html index.htm; location / { try_files $uri $uri/ =404; } } # HTTP → HTTPS 301 重定向 server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; }

十、常用操作命令速查

操作命令
启动sudo systemctl start nginx
停止sudo systemctl stop nginx
重载配置sudo systemctl reload nginx
重启sudo systemctl restart nginx
查看状态sudo systemctl status nginx
检查配置sudo nginx -t
查看版本nginx -v
测试配置并退出sudo nginx -t && sudo systemctl reload nginx

十一、配置反向代理(高频使用场景)

如果你的应用跑在127.0.0.1:3000,想通过example.com访问:

server { listen 80; server_name example.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

常用后端场景:

后端proxy_pass
Node.jshttp://127.0.0.1:3000
Python/Gunicornhttp://127.0.0.1:8000
Java/Tomcathttp://127.0.0.1:8080
Docker 容器http://172.17.0.1:端口

十二、常见问题排查

问题原因解决方案
浏览器打不开防火墙没放行firewall-cmd --add-service=http --permanent && firewall-cmd --reload
502 Bad Gateway后端服务没启动检查后端进程是否运行:curl http://127.0.0.1:3000
403 Forbidden目录权限不对sudo chmod -R 755 /var/www/example.com
配置改了不生效没 reloadsudo systemctl reload nginx
SELinux 报错权限被拦截sudo setenforce 0或设置正确的 SELinux 上下文
端口被占用80 端口被其他程序占用sudo netstat -tlnp | grep :80找到并处理

十三、总结

步骤命令耗时
安装 Nginxyum install -y nginx30 秒
启动 + 开机自启systemctl start nginx && systemctl enable nginx5 秒
放行防火墙firewall-cmd --add-service=http --permanent && reload5 秒
配置虚拟主机创建.conf文件2 分钟
检查 + 重载nginx -t && systemctl reload nginx5 秒
总计不到 3 分钟

Nginx 的配置逻辑非常清晰:一个 server 块 = 一个网站,改完nginx -t验一下,reload一下,就完事了。

装好 Nginx 只是第一步,后面搭配Let’s Encrypt 证书 + 反向代理 + 自动续期,就是一套完整的生产级 Web 服务方案。

现在就去把你的网站跑起来 🚀

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/18 16:20:58

SmartDSP OS内存与MMU管理:嵌入式实时系统的性能基石

1. 项目概述与核心价值在嵌入式DSP&#xff08;数字信号处理&#xff09;系统的开发中&#xff0c;内存管理往往是决定系统性能、稳定性和可扩展性的“胜负手”。不同于通用计算平台&#xff0c;DSP系统通常运行在资源受限、实时性要求极高的环境中&#xff0c;例如基站信号处理…

作者头像 李华
网站建设 2026/6/18 16:07:02

AWS Kiro和Google Antigravity

Kiro & Google Antigravity 完整解析&#xff08;两款 Agent 原生 AI 代码 IDE&#xff0c;贴合你 Planner / 本地 LLM 开发场景&#xff09;二者是 2025–2026 主流自主智能体编程 IDE&#xff0c;分别由 AWS、Google 推出&#xff0c;对标 Cursor、Continue&#xff0c;主…

作者头像 李华
网站建设 2026/6/18 15:59:11

DALL-E 3 角色一致性工程:用视觉锚点实现可复现IP生成

1. 项目概述&#xff1a;用 ChatGPT DALL-E 3 打造角色一致性——不是玄学&#xff0c;是可复现的工程实践我第一次把“小熊布布”画出来的时候&#xff0c;它正坐在蘑菇伞下喝蜂蜜茶&#xff0c;圆眼睛、歪帽子、左耳缺了一小块毛——这个细节是我随手加的&#xff0c;没想太…

作者头像 李华
网站建设 2026/6/18 15:41:13

AI自拍越‘烂’越真实:生成式AI的真实感新范式

1. 项目概述&#xff1a;当AI自拍“翻车”时&#xff0c;我们反而看见了真实 “GPT4o生成的烂自拍&#xff0c;反而比我们更真实。”——这句话刚在小红书和知乎上被转发时&#xff0c;我正调试一组人脸光照参数&#xff0c;手一抖差点把渲染器关掉。不是因为震惊&#xff0c;而…

作者头像 李华
网站建设 2026/6/18 15:39:22

用知识库提升员工敬业度的四大秘诀

如果你的知识库不仅能存储信息&#xff0c;还能让员工带着更多热情和动力投入工作&#xff0c;那会怎样&#xff1f;如果你的公司正面临员工敬业度低的问题&#xff0c;你并不孤单。成千上万的企业都有同样的困扰。根据盖洛普的一项调查&#xff0c;超过 70% 的美国员工在职场感…

作者头像 李华