nginx有哪些常见功能及配置示例

HTTP服务器功能:
http {
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
}
}
动态请求处理:
http {
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
}
认证和授权:
http {
server {
listen 80;
server_name example.com;
location /restricted {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://backend;
}
}
}
缓存和性能优化:
http {
server {
listen 80;
server_name example.com;
location / {
proxy_cache my_cache;
proxy_cache_valid 200 1h;
proxy_cache_use_stale error timeout updating;
proxy_pass http://backend;
}
}
}
限流和防刷:
http {
limit_req_zone $binary_remote_addr zone=ip_limit:10m rate=10r/s;
server {
listen 80;
server_name example.com;
location /api {
limit_req zone=ip_limit burst=20;
proxy_pass http://backend;
}
}
}
日志和监控:
http {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
}
WebSocket支持:
http {
server {
listen 80;
server_name example.com;
location /websocket {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
}
SSL/TLS支持:
http {
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private_key.key;
location / {
proxy_pass http://backend;
}
}
}
负载均衡:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
}
HTTP/2支持:
http {
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private_key.key;
location / {
proxy_pass http://backend;
}
}
}
URL重写和重定向:
http {
server {
listen 80;
server_name example.com;
location /old {
rewrite ^/old/(.*)$ /new/$1 permanent;
}
location / {
proxy_pass http://backend;
}
}
}
反向代理:
http {
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
}
CORS支持:
http {
server {
listen 80;
server_name example.com;
location /api {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
proxy_pass http://backend;
}
}
}
Gzip压缩:
http {
gzip on;
gzip_types text/plain text/css application/json;
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
}
图片处理:
http {
server {
listen 80;
server_name example.com;
location /images {
try_files $uri @image_processing;
}
location @image_processing {
proxy_pass http://image_backend;
}
}
}
安全防护:
http {
server {
listen 80;
server_name example.com;
location / {
limit_req zone=ip_limit burst=20;
proxy_pass http://backend;
}
}
}
认证代理:
http {
server {
listen 80;
server_name example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://backend;
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
}
请求转发和过滤:
http {
server {
listen 80;
server_name example.com;
location / {
if ($args ~* "debug=true") {
return 404;
}
proxy_pass http://backend;
}
}
}
WebSocket反向代理:
http {
server {
listen 80;
server_name example.com;
location /websocket {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
}