插件窝 干货文章 Nginx安装后常用功能如何配置

Nginx安装后常用功能如何配置

Nginx server 配置 http 673    来源:    2025-04-25

Nginx 安装后的常用功能配置主要涉及以下几个方面,以下是详细的配置指南:


1. 基础服务配置

配置文件路径/etc/nginx/nginx.conf/usr/local/nginx/conf/nginx.conf
核心结构

events {
    worker_connections 1024;  # 每个worker进程的最大连接数
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  example.com;
        root         /var/www/html;
        index        index.html index.htm;
    }
}

2. 虚拟主机(多站点)

http {
    server {
        listen 80;
        server_name site1.com;
        root /var/www/site1;
        index index.html;
    }

    server {
        listen 80;
        server_name site2.com;
        root /var/www/site2;
        index index.html;
    }
}

3. HTTPS 配置(Let's Encrypt 证书)

  1. 安装证书(以 Certbot 为例): bash sudo certbot --nginx -d example.com
  2. 自动生成的配置示例:

    server {
       listen 443 ssl;
       server_name example.com;
       ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
       root /var/www/html;
       index index.html;
    }
    

4. 反向代理

将请求转发到后端服务(如 Node.js、Tomcat):

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;
    }
}

5. 负载均衡

配置多台后端服务器轮询分发请求:

http {
    upstream backend {
        server 192.168.1.100:8080;
        server 192.168.1.101:8080;
        server 192.168.1.102:8080 backup;  # 备用服务器
    }

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

        location / {
            proxy_pass http://backend;
        }
    }
}

6. 静态文件缓存

加速静态资源(如图片、CSS/JS):

server {
    location ~* \.(jpg|png|css|js)$ {
        expires 30d;          # 缓存30天
        add_header Cache-Control "public";
        access_log off;      # 关闭日志减少IO
    }
}

7. 访问控制

  • IP 白名单nginx location /admin { allow 192.168.1.0/24; allow 10.0.0.1; deny all; }
  • Basic 认证bash # 生成密码文件 sudo sh -c "echo -n 'user:' >> /etc/nginx/.htpasswd" sudo openssl passwd -apr1 >> /etc/nginx/.htpasswd" nginx location /secure { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; }

8. 日志配置

  • 自定义访问日志格式

    http {
      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;
    }
    

9. Gzip 压缩

减少传输体积:

http {
    gzip on;
    gzip_types text/plain text/css application/json application/javascript;
    gzip_min_length 1024;
}

10. 常用命令

# 检查配置语法
sudo nginx -t

# 重载配置(不重启服务)
sudo nginx -s reload

# 启动/停止/重启
sudo systemctl start|stop|restart nginx

注意事项

  1. 每次修改配置后,务必执行 nginx -t 测试语法。
  2. 路径需根据实际环境调整(如证书路径、网站根目录)。
  3. 生产环境建议禁用服务器版本号(在 http 块中添加 server_tokens off;)。

根据需求组合上述配置即可实现大部分常见场景。遇到具体问题时,可结合 Nginx 日志(/var/log/nginx/error.log)排查。