插件窝 干货文章 Nginx服务器搭建和基本配置实例分析

Nginx服务器搭建和基本配置实例分析

Nginx 配置 server example 346    来源:    2025-04-22

Nginx服务器搭建与基本配置实例分析

一、Nginx简介

Nginx(发音为"engine x")是一款高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它具有占用内存少、并发能力强、稳定性高等特点,被广泛用于负载均衡、Web服务、反向代理等场景。

二、Nginx安装

1. Linux系统安装(以Ubuntu为例)

# 更新软件包列表
sudo apt update

# 安装Nginx
sudo apt install nginx

# 启动Nginx服务
sudo systemctl start nginx

# 设置开机自启
sudo systemctl enable nginx

2. Windows系统安装

  1. 从官网下载Windows版Nginx压缩包
  2. 解压到指定目录
  3. 运行nginx.exe

三、基本配置实例

1. 配置文件结构

Nginx的主要配置文件通常位于: - Linux: /etc/nginx/nginx.conf - Windows: conf/nginx.conf

配置文件主要由以下几部分组成: - 全局块:配置影响nginx全局的指令 - events块:配置影响nginx服务器或与用户的网络连接 - http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能 - server块:配置虚拟主机的相关参数 - location块:配置请求的路由,以及各种页面的处理情况

2. 基础Web服务器配置实例

# 全局配置
user www-data;
worker_processes auto;
pid /run/nginx.pid;

# 事件模块配置
events {
    worker_connections 768;
    # multi_accept on;
}

# HTTP模块配置
http {
    # 基础设置
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    # MIME类型
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # 日志格式
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    # Gzip压缩
    gzip on;
    gzip_disable "msie6";

    # 虚拟主机配置
    server {
        listen 80;
        server_name example.com www.example.com;

        root /var/www/example.com/html;
        index index.html index.htm;

        location / {
            try_files $uri $uri/ =404;
        }

        # 静态文件缓存
        location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
            expires 30d;
        }

        # 禁止访问隐藏文件
        location ~ /\. {
            deny all;
        }
    }
}

3. 反向代理配置实例

server {
    listen 80;
    server_name api.example.com;

    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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

4. 负载均衡配置实例

upstream backend {
    server backend1.example.com weight=5;
    server backend2.example.com;
    server backend3.example.com;
    server backup.example.com backup;
}

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

四、常用命令

# 启动Nginx
sudo systemctl start nginx

# 停止Nginx
sudo systemctl stop nginx

# 重启Nginx
sudo systemctl restart nginx

# 重新加载配置(不中断服务)
sudo systemctl reload nginx

# 检查配置语法
sudo nginx -t

# 查看Nginx状态
sudo systemctl status nginx

五、常见问题解决

  1. 端口冲突

    • 检查是否有其他服务占用了80端口:sudo netstat -tulnp | grep :80
    • 修改Nginx监听端口或停止冲突服务
  2. 权限问题

    sudo chown -R www-data:www-data /var/www/example.com
    sudo chmod -R 755 /var/www/example.com
    
  3. 403 Forbidden错误

    • 确保root目录存在且权限正确
    • 检查index文件是否存在
    • 确认SELinux是否阻止访问(如果是CentOS/RHEL)
  4. 502 Bad Gateway错误

    • 检查后端服务是否正常运行
    • 检查代理配置是否正确

六、性能优化建议

  1. 调整worker_processes和worker_connections
  2. 启用Gzip压缩
  3. 配置静态文件缓存
  4. 使用HTTP/2协议
  5. 限制客户端请求体大小
  6. 配置合理的超时时间

通过以上配置和优化,您可以搭建一个高性能、稳定的Nginx服务器,满足各种Web服务需求。