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;

}

}

  1. 负载均衡

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;

}

}

  1. 缓存

可以配置 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;

}

}

  1. 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/;

}

}

  1. 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; # 拒绝所有其他来源

}

  1. 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;

  1. 状态监控

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

location /nginx_status {

stub_status on;

access_log off;

allow 127.0.0.1; # 仅允许本地访问

deny all;

}

补充:

相关推荐
公众号:fuwuqiBMC1 小时前
(转自“服务器BMC”)服务器BMC芯片——AST1840
运维·服务器·fpga开发
测试专家1 小时前
PCI-1553B板卡在 Windows Server 2016 服务器安装流程详解
服务器·windows·单片机
忘路之远近i1 小时前
受够阿里云自带终端后,我用 Cursor + grill-me 做了个运维面板
服务器·开发语言·人工智能·python·阿里云·云计算
laboratory agent开发1 小时前
工具调用失败后怎么办?重试分层与降级回路的三种路线
服务器·前端·网络
邪修king2 小时前
Re:Linux系统篇(四):权限Chapter--用户身份、权限位与目录权限三大核心问题
linux·运维·服务器
肥胖小羊2 小时前
企业微信自建应用多环境联调与路由代理方案
服务器·前端·网络
Alan_6912 小时前
第三方API对接的通用封装模式
服务器·开发语言·php
buhuizhiyuci2 小时前
【Linux 篇】数字世界的通信管道 —— 匿名管道与进程池深度实战解析
linux·运维·服务器
江南风月3 小时前
WGCLOUD是如何监控服务器上的异常进程的
linux·运维·服务器
无锡耐特森3 小时前
ModbusTCP转Profinet:打通潜油电泵工业互联新路径
linux·运维·服务器