返回文章列表
服务器

如何快速搭建Nginx服务器?

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

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 nginx

1.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_processesworker进程数,通常等于CPU核心数auto
worker_connections每个worker的最大连接数1024
use epollLinux下最佳事件驱动模型epoll
sendfile on开启零拷贝传输,提升静态文件性能on
keepalive_timeoutHTTP长连接保持时间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 -t

4.2 常见问题

问题原因解决方案
无法访问Nginx防火墙/SELinux拦截开放80端口,禁用SELinux
403 Forbidden文件权限不足chown -R nginx:nginx /网站目录
502 Bad Gateway后端服务不可用检查proxy_pass地址和端口
配置不生效未重载配置执行 nginx -s reload


通过以上步骤,就可以在CentOS 7上完成Nginx的从零搭建和极简配置。

本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。

分享文章
合作伙伴

本站所有广告均是第三方投放,详情请查询本站用户协议