当前位置: 首页 > news >正文

Nginx常见功能

Nginx 是一个高性能的 HTTP 和反向代理服务器,除了基本的 Web 服务功能外,它还支持许多高级功能。以下是 Nginx 常用的一些功能及其设置方法:

1. 反向代理
反向代理是 Nginx 最常用的功能之一,用于将客户端请求转发给后端服务器,并返回处理结果。

http {
    limit_req_zone $binary_remote_addr zone=admin_limit:10m rate=10r/m;

    server {
        listen 80;
        server_name example.com;

        location /admin/ {
            allow 192.168.1.0/24; # 仅允许特定网段访问
            deny all;              # 拒绝其他所有来源
            
            limit_req zone=admin_limit burst=5 nodelay;
            
            proxy_pass http://backend_admin_server;
            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;
        }
    }
}

例子2:

server {
    listen 80;
    server_name yourdomain.com;

    # 定义图片存储路径
    location /images/ {
        root /path/to/local/images; # 设置本地图片存储路径
        try_files $uri @minio; # 如果本地找不到图片,则转到 @minio 处理
    }

    
    location @minio {
        proxy_pass http://minio-server-endpoint; # 替换为你的 MinIO 服务器地址和端口
        proxy_set_header Host minio-server-endpoint; # 根据需要调整
        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;
    }
}

2. 负载均衡
Nginx 支持多种负载均衡算法(如轮询、最少连接、哈希等)来分配请求到多个后端服务器。


upstream backend_servers {
    server backend1.example.com weight=3;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    listen 80;
    server_name example.com;    location / {
        proxy_pass http://backend_servers;
    }
}

3. 缓存
可以配置 Nginx 来缓存静态内容或动态响应,以减少对后端服务器的压力。


proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;server {
    location / {
        proxy_cache my_cache;
        proxy_pass http://backend;
    }
}

4. SSL/TLS 加密
为网站启用 HTTPS 支持,确保数据传输的安全性。


server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;    location / {
        proxy_pass http://backend;
    }
}

5. 静态文件服务
直接从本地文件系统提供静态文件服务。


server {
    listen 80;
    server_name example.com;    location /static/ {
        alias /var/www/static/;
    }
}

6. URL 重写与重定向
使用 rewrite 指令实现 URL 的重写或重定向。


server {
    listen 80;
    server_name old.example.com;    rewrite ^/(.*)$ http://new.example.com/$1 permanent;
}

7. 访问控制
基于 IP 地址或其他条件限制访问。

location /admin/ {
    allow 192.168.1.0/24; # 允许特定网段
    deny all;             # 拒绝所有其他来源
}

8. Gzip 压缩
启用 Gzip 压缩以减少传输的数据量。

gzip on;
gzip_types text/plain application/xml;
gzip_proxied any;
gzip_min_length 1000;

9. 日志管理
配置访问日志和错误日志的位置及格式。

access_log /var/log/nginx/access.log combined;
error_log /var/log/nginx/error.log warn;

10. 状态监控
启用 Nginx 的状态页面以便于监控性能和健康状况。


location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1; # 仅允许本地访问
    deny all;

补充:

相关文章:

  • Java常见八股-(6.算法+实施篇)
  • P12894 [蓝桥杯 2025 国 Java B] 智能交通信号灯
  • 多模态图像融合2
  • 滑动窗口算法
  • 第五章 中央处理器
  • Dify动手实战教程(进阶-知识库:新生入学指南)
  • 消息队列的基本概念
  • 【大模型学习】项目练习:知乎文本生成器
  • 嵌入式学习笔记——day36-多路IO复用
  • 物体变化下的迈克尔逊干涉:条纹密度、载波解调与双曝光去畸变
  • 目标检测新升级:用YOLOv8打造密度视频热力图可视化
  • solidworks屏幕比例
  • C++基础算法————并查集
  • C++ map 和 unordered_map 的区别和联系
  • 加密货币:以太坊
  • Mac电脑 磁盘检测和监控工具 DriveDx
  • 【PyTorch】请问,Reproducibility中的‘:4096:8‘是什么呀?
  • 【学习笔记】锁+死锁+gdb调试死锁
  • FPGA基础 -- Verilog 的值变转储文件(VCD:Value Change Dump)
  • 准备开始适配高德Flutter的鸿蒙版了
  • 做自己卖东西的网站/天津百度推广
  • 引导企业做网站/网络营销推广公司简介
  • 网站重新建设的申请书/中国目前最好的搜索引擎
  • 建一个优化网站多少钱/在百度平台如何做营销
  • 为什么网站需要维护/百度西安分公司地址
  • 可以自己做视频网站吗/如何注册域名