centos7 nginx 1.8
CentOS 7安装Nginx 1.8:新手也能上手的Web服务器搭建指南
在Web服务器领域,Nginx凭借轻量高效、高并发处理能力成为众多开发者的首选。而CentOS 7作为稳定的Linux服务器系统,与Nginx 1.8版本的组合在生产环境中表现尤为可靠。本文将从环境准备到实战配置,手把手带你完成CentOS 7上Nginx 1.8的部署与优化。
一、环境准备与依赖安装
1. 系统基础配置
首先确保CentOS 7系统已更新至最新状态,打开终端执行:
yum update -y && yum clean all

此步骤可修复系统漏洞并清理缓存,避免后续安装时依赖冲突。
2. 安装编译与运行依赖
Nginx 1.8编译需要gcc、pcre、zlib和openssl等工具,执行:
yum install -y gcc pcre-devel zlib-devel openssl-devel
二、安装Nginx 1.8
CentOS 7官方源默认仅提供低版本Nginx,需手动添加Nginx官方yum源:
# 创建Nginx源配置文件
cat > /etc/yum.repos.d/nginx.repo << EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF
# 生成yum缓存
yum makecache
执行安装命令:
yum install nginx-1.8.1 -y
安装完成后,验证版本:
nginx -v # 输出应为nginx version: nginx/1.8.1
三、启动与基础配置
1. 服务启停与自启
# 启动Nginx
systemctl start nginx
# 设置开机自启
systemctl enable nginx
# 检查状态
systemctl status nginx # 应显示active (running)
2. 防火墙配置
CentOS 7默认启用firewalld,需开放80端口(HTTP)和443端口(HTTPS):
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload # 立即生效
3. 验证安装
访问服务器IP(如http://192.168.1.100),若看到Nginx默认欢迎页面,则安装成功。
四、核心配置实战
1. 主配置文件解析
Nginx配置以nginx.conf为核心,关键区块说明:
- events块:控制网络连接模型(如
worker_connections限制单连接数) - http块:定义全局HTTP参数(如
gzip压缩、expires缓存) - server块:虚拟主机配置(域名、端口、根目录等)
2. 虚拟主机配置示例
假设需部署两个站点:blog.example.com和api.example.com,步骤如下:
创建站点目录
mkdir -p /var/www/{blog,api}
echo "Hello from Blog" > /var/www/blog/index.html
echo "API Service" > /var/www/api/index.html
配置server块
编辑/etc/nginx/conf.d/sites.conf:
server {
listen 80;
server_name blog.example.com; # 域名匹配
root /var/www/blog; # 网站根目录
index index.html; # 默认首页
# 静态资源缓存
location ~* \.(jpg|jpeg|png|css|js)$ {
expires 7d; # 缓存静态文件7天
add_header Cache-Control "public, max-age=604800";
}
}
server {
listen 80;
server_name api.example.com;
root /var/www/api;
index index.html;
# 反向代理到后端服务(如Node.js/Flask)
location / {
proxy_pass http://127.0.0.1:3000; # 后端服务地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3. HTTPS配置(进阶)
生成SSL证书(以Let's Encrypt为例):
# 安装Certbot
yum install certbot python2-certbot-nginx -y
# 获取证书并自动配置
certbot --nginx -d blog.example.com -d api.example.com
证书自动配置后,Nginx将自动生成HTTPS配置块,强制HTTP跳转HTTPS。
五、常见问题与解决方案
1. 启动失败排查
- 端口占用:
netstat -tunlp | grep 80检查80端口是否被Apache等服务占用 - 配置错误:执行
nginx -t验证配置文件语法,根据报错修改nginx.conf - 权限问题:确保网站根目录权限为
nginx:nginx
2. 性能优化建议
- 调整并发连接:在
events块添加worker_connections 2048;(默认1024) - 启用Gzip压缩:在
http块添加:gzip on; gzip_types text/css application/javascript image/svg+xml; - worker进程数:设为
worker_processes auto;(匹配CPU核心数)
六、总结
CentOS 7与Nginx 1.8的组合,在稳定性与性能间取得平衡。通过本文步骤,你已掌握基础安装、虚拟主机配置、反向代理等核心技能。生产环境中建议定期备份配置文件,并通过nginx -s reload实现无中断服务更新。遇到问题可参考Nginx官方文档或社区论坛,快速定位解决方案。
动手提示:从单站点部署开始,逐步尝试HTTPS、负载均衡等进阶功能,实践是掌握Nginx的最佳途径。








