如何配置Nginx服务器?Nginx配置详细步骤解析

安装Nginx

Ubuntu/Debian

sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

CentOS/RHEL

sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

核心目录结构

  • 主配置文件/etc/nginx/nginx.conf
  • 虚拟主机配置/etc/nginx/sites-available/ (存放配置) → 软链到 /etc/nginx/sites-enabled/ (生效配置)
  • 默认网页根目录/var/www/html/
  • 日志
    • 访问日志:/var/log/nginx/access.log
    • 错误日志:/var/log/nginx/error.log

基础配置示例

创建虚拟主机 (Server Block)

  1. 创建配置文件:

    服务器配置nginx实践

    sudo nano /etc/nginx/sites-available/your_domain.conf
  2. 基础模板:

    server {
        listen 80;
        server_name your-domain.com www.your-domain.com;
        root /var/www/your-domain.com/html;
        index index.html index.htm;
        location / {
            try_files $uri $uri/ =404;
        }
        # 静态文件缓存
        location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 30d;
            add_header Cache-Control "public, no-transform";
        }
        # 禁止访问隐藏文件
        location ~ /.ht {
            deny all;
        }
    }
  3. 启用配置:

    sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/
    sudo nginx -t  # 测试配置语法
    sudo systemctl reload nginx

HTTPS配置(Let’s Encrypt)

安装Certbot

sudo apt install certbot python3-certbot-nginx -y  # Ubuntu
sudo certbot --nginx -d your-domain.com -d www.your-domain.com

自动更新证书:

sudo certbot renew --dry-run  # 测试续订

强制HTTP跳转HTTPS

server块中添加:

服务器配置nginx实践

server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$host$request_uri;  # 重定向到HTTPS
}

安全优化配置

/etc/nginx/nginx.conf 全局优化

http {
    # 隐藏Nginx版本号
    server_tokens off;
    # 安全头部
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection "1; mode=block";
    add_header Content-Security-Policy "default-src 'self'";
    # 限制请求体大小(防DoS)
    client_max_body_size 10m;
    # 禁用非必要HTTP方法
    if ($request_method !~ ^(GET|HEAD|POST)$ ) {
        return 405;
    }
}

性能优化

http {
    # 开启Gzip压缩
    gzip on;
    gzip_types text/plain text/css application/json application/javascript;
    # 连接优化
    keepalive_timeout 30;
    keepalive_requests 1000;
    # 文件传输优化
    sendfile on;
    tcp_nopush on;
}

反向代理配置

代理到本地Node.js应用(端口3000):

location / {
    proxy_pass http://localhost: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;
}

常见问题排查

  1. 测试配置
    sudo nginx -t

  2. 检查端口占用
    sudo ss -tulpn | grep ':80'

  3. 查看错误日志
    tail -f /var/log/nginx/error.log

    服务器配置nginx实践

  4. 权限问题
    确保网站目录权限:
    sudo chown -R www-data:www-data /var/www/your-domain.com (Ubuntu)
    sudo chown -R nginx:nginx /var/www/your-domain.com (CentOS)


高级场景

负载均衡(4个后端服务器)

upstream backend {
    server backend1.example.com weight=3;
    server backend2.example.com;
    server backend3.example.com backup;
    server backend4.example.com;
}
server {
    location / {
        proxy_pass http://backend;
    }
}

WebSocket代理

location /ws/ {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

常用命令

功能 命令
启动 sudo systemctl start nginx
停止 sudo systemctl stop nginx
重启 sudo systemctl restart nginx
重载配置 sudo systemctl reload nginx
查看状态 sudo systemctl status nginx

通过以上步骤,您已完成Nginx的基础配置到高级优化,根据实际需求调整参数,并始终通过nginx -t验证配置后再重载服务。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/293239.html

(0)
上一篇 2026年2月12日 06:51
下一篇 2026年2月12日 06:54

相关推荐

  • 服务器突然重新启动,可能的原因是什么?如何排查并解决重启问题?

    流程规范与风险管控实践服务器作为企业IT基础设施的核心载体,其稳定运行直接关系到业务连续性与数据安全,服务器重启作为系统维护、故障恢复与功能更新的关键操作,既是保障系统健康的“常规保养”,也可能因操作不当引发潜在风险,本文将从专业视角系统阐述服务器重启的必要性、操作流程、风险控制及实践经验,结合酷番云的独家案例……

    2026年1月26日
    02510
  • 服务器远程登录无权限怎么办,远程桌面连接权限不足解决方法

    服务器远程登录提示无权限,通常并非单一原因所致,而是身份验证链条中的某一环节断裂,核心结论在于:解决此类问题必须遵循“网络连通性—身份凭证—服务状态—安全策略”的排查逻辑,绝大多数“无权限”报错,实质上是由于密码凭证错误、安全组策略拦截、用户权限配置缺失或服务器内部安全软件误拦截导致的,通过系统化的排查流程,可……

    2026年3月28日
    01933
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 服务器连接凭据是什么,如何获取服务器连接凭据

    服务器连接凭据是保障服务器安全访问与高效运维的核心钥匙,其管理的严密性直接决定了业务系统的安全基线与运维效率,核心结论在于:构建一套基于最小权限原则、加密存储与动态轮换机制的凭据管理体系,是杜绝未授权访问、防止数据泄露并确保持续合规的唯一路径, 任何对凭据管理的疏忽,如明文存储、权限过度或长期不变,都将导致服务……

    2026年3月18日
    01773
  • 服务器运维怎么做?服务器运维笔记指南

    服务器运维笔记高效、稳定、可扩展的服务器运维体系,是保障业务连续性与用户体验的核心基石, 在云计算与混合架构日益普及的当下,运维工作已从“被动响应”转向“主动预防+智能优化”,本文结合多年一线实战经验,系统梳理服务器运维的关键环节、常见风险及可落地的优化策略,并融入酷番云在企业级云服务中的真实项目经验,为技术管……

    2026年4月11日
    01815

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注