服务器
如何快速搭建Nginx服务器?
沉积
2026-01-17
1小时前

nginx作为当今火爆的、高性能的http及反向代理服务,已有非常广泛的应用。本文分享到Nginx服务运行的完整流程,包含极简配置文件和关键参数详解。
一、Nginx极简安装
1.1 添加官方源并安装
# 安装Nginx官方源rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm# 安装Nginxyum install -y nginx# 启动并设置开机自启systemctl start nginxsystemctl enable nginx# 查看状态(active表示正常)systemctl status nginx1.2 防火墙配置
# 开放80端口(HTTP)firewall-cmd --permanent --add-port=80/tcpfirewall-cmd --reload# 验证:浏览器访问 http://服务器IP,应看到Nginx欢迎页1.3 SELinux设置(推荐禁用)
# 临时禁用setenforce 0# 永久禁用sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config二、极简Nginx配置示例
2.1 主配置文件:/etc/nginx/nginx.conf
user nginx; # 运行用户worker_processes auto; # 自动根据CPU核心数设置error_log /var/log/nginx/error.log warn; # 错误日志pid /var/run/nginx.pid; # PID文件events { worker_connections 1024; # 每个worker的最大连接数 use epoll; # Linux高性能事件模型}http { include /etc/nginx/mime.types; # MIME类型 default_type application/octet-stream; # 默认类型 # 访问日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; # 开启高效文件传输 keepalive_timeout 65; # 长连接超时时间 # 虚拟主机配置 server { listen 80; # 监听端口 server_name localhost; # 域名或IP root /usr/share/nginx/html; # 网站根目录 index index.html index.htm; # 默认首页 location / { try_files $uri $uri/ =404; # 静态文件查找规则 } }}2.2 验证配置并重启
# 检查配置语法nginx -t# 重载配置(不影响运行)nginx -s reload三、常见配置项详解
3.1 核心性能配置
| 配置项 | 说明 | 推荐值 |
|---|---|---|
worker_processes | worker进程数,通常等于CPU核心数 | auto |
worker_connections | 每个worker的最大连接数 | 1024 |
use epoll | Linux下最佳事件驱动模型 | epoll |
sendfile on | 开启零拷贝传输,提升静态文件性能 | on |
keepalive_timeout | HTTP长连接保持时间 | 65s |
3.2 静态文件服务配置
location /static { root /data/www; # 文件存放路径 expires 7d; # 缓存7天 gzip on; # 开启gzip压缩 gzip_types text/plain text/css application/json; # 压缩类型}参数解释:
root
: 指定文件根目录,URL路径会追加到root后
expires
: 设置浏览器缓存时间
gzip
: 压缩传输,减少带宽占用(通常可节省50%-70%)
3.3 反向代理配置
server { listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:8080; # 后端服务地址 proxy_set_header Host $host; # 传递原始Host头 proxy_set_header X-Real-IP $remote_addr; # 传递真实客户端IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 75s; proxy_read_timeout 400s; }}关键header说明:
X-Real-IP
: 后端服务器获取真实客户端IP
X-Forwarded-For
: 记录完整代理链路IP
Host
: 确保后端服务识别原始域名
3.4 负载均衡配置
# 定义后端服务器池upstream backend { # 负载均衡策略:ip_hash/least_conn/weight server 192.168.1.101:8080 weight=3; # 权重3 server 192.168.1.102:8080 weight=2; # 权重2 server 192.168.1.103:8080 backup; # 备份服务器}server { listen 80; location / { proxy_pass http://backend; # 使用upstream名称 }}负载均衡策略:
轮询(默认)
: 平均分配请求
weight
: 加权轮询,权重越高分配越多
ip_hash
: 同一IP固定到同一后端(保持会话)
least_conn
: 优先分配给连接数最少的后端
backup
: 其他服务器宕机时才启用
四、验证与排错
4.1 服务检查命令
# 检查Nginx是否运行systemctl status nginxnetstat -tlnp | grep 80# 查看访问日志tail -f /var/log/nginx/access.log# 查看错误日志tail -f /var/log/nginx/error.log# 测试配置文件nginx -t4.2 常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 无法访问Nginx | 防火墙/SELinux拦截 | 开放80端口,禁用SELinux |
| 403 Forbidden | 文件权限不足 | chown -R nginx:nginx /网站目录 |
| 502 Bad Gateway | 后端服务不可用 | 检查proxy_pass地址和端口 |
| 配置不生效 | 未重载配置 | 执行 nginx -s reload |
通过以上步骤,就可以在CentOS 7上完成Nginx的从零搭建和极简配置。
本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。
分享文章



