插件窝 干货文章 Nginx快速入门实例分析

Nginx快速入门实例分析

Nginx server proxy example 367    来源:    2025-04-25

Nginx快速入门实例分析

一、Nginx简介

Nginx(发音为"engine x")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它具有以下特点: - 高并发处理能力(单机可支持5万并发连接) - 内存占用低 - 配置简单灵活 - 模块化设计 - 稳定性高

二、基本安装

Linux系统安装(以Ubuntu为例)

sudo apt update
sudo apt install nginx

启动/停止/重启Nginx

sudo systemctl start nginx    # 启动
sudo systemctl stop nginx     # 停止
sudo systemctl restart nginx  # 重启
sudo systemctl reload nginx   # 重新加载配置
sudo systemctl status nginx   # 查看状态

三、基础配置实例

1. 静态网站服务

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

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

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

2. 反向代理配置

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

3. 负载均衡配置

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

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

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

四、实用功能实例

1. URL重写

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

    rewrite ^/old-page$ /new-page permanent;

    location /products {
        rewrite ^/products/(.*)$ /items/$1 last;
    }
}

2. 访问控制

location /admin {
    allow 192.168.1.0/24;
    allow 10.0.0.1;
    deny all;

    auth_basic "Admin Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

3. Gzip压缩

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1000;
gzip_proxied any;
gzip_comp_level 6;
gzip_vary on;

五、性能优化配置

1. 工作进程优化

worker_processes auto;  # 自动设置为CPU核心数
worker_rlimit_nofile 100000;  # 每个worker进程能打开的文件描述符数量

2. 连接优化

events {
    worker_connections 4096;  # 每个worker进程的最大连接数
    multi_accept on;  # 一次接受多个新连接
    use epoll;  # Linux系统使用epoll事件模型
}

3. 缓存优化

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m use_temp_path=off;

server {
    location / {
        proxy_cache my_cache;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404 1m;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    }
}

六、常见问题排查

  1. 检查配置语法

    sudo nginx -t
    
  2. 查看错误日志

    tail -f /var/log/nginx/error.log
    
  3. 查看访问日志

    tail -f /var/log/nginx/access.log
    
  4. 检查端口占用

    sudo netstat -tulnp | grep :80
    
  5. 检查进程状态

    ps aux | grep nginx
    

七、进阶学习建议

  1. 学习Nginx的模块系统
  2. 研究Nginx与Lua的结合(OpenResty)
  3. 了解Nginx的微服务架构应用
  4. 学习Nginx的TCP/UDP代理功能
  5. 研究Nginx的WebSocket支持

通过以上实例和配置,您可以快速搭建和优化Nginx服务器,满足大多数Web服务需求。