插件窝 干货文章 Nginx基本功能实例分析

Nginx基本功能实例分析

Nginx server example location 193    来源:    2025-04-27

Nginx基本功能实例分析

Nginx是一款高性能的HTTP和反向代理服务器,以下是其主要功能及配置实例分析:

1. 静态文件服务

Nginx最基础的功能是作为静态文件服务器:

server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/html;
        index index.html;
    }

    location /images/ {
        root /var/www;
        autoindex on;  # 开启目录列表
    }
}

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. 负载均衡

Nginx可以实现简单的负载均衡:

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

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

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

4. URL重写

使用rewrite规则进行URL重定向:

server {
    listen 80;
    server_name example.com;

    location /old/ {
        rewrite ^/old/(.*)$ /new/$1 permanent;
    }

    location /search {
        rewrite ^ /search.php;
    }
}

5. HTTPS配置

配置SSL证书启用HTTPS:

server {
    listen 443 ssl;
    server_name secure.example.com;

    ssl_certificate /etc/nginx/ssl/example.crt;
    ssl_certificate_key /etc/nginx/ssl/example.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        root /var/www/secure;
        index index.html;
    }
}

6. 访问控制

限制访问权限:

location /admin/ {
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    deny all;

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

7. Gzip压缩

启用内容压缩减少传输量:

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

8. 缓存设置

配置代理缓存:

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_pass http://backend;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404 1m;
    }
}

9. 日志配置

自定义访问日志格式:

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;
error_log /var/log/nginx/error.log warn;

10. 虚拟主机

配置多个虚拟主机:

server {
    listen 80;
    server_name site1.example.com;
    root /var/www/site1;
    ...
}

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

以上是Nginx的一些基本功能配置实例。Nginx配置灵活强大,可以根据实际需求组合这些功能构建高性能的Web服务架构。