
###### 全局块 worker_processes auto; # 工作进程数 error_log /var/log/nginx/error.log notice; # 错误级别记录 events { worker_connections 1024; # 单个工作进程,可承载的最大连接数 } http { ###### MIME 配置 include /etc/nginx/mime.types; # 文件扩展名与文件类型映射表 default_type application/octet-stream; # mime.types 不包含时的默认设置 ###### 请求日志配置 log_format log-format-a '$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 log-format-a; # 访问日志路径 及引用格式 ###### 后端可用服务配置 upstream backend-server-name { server 192.168.1.101:80; server 192.168.1.102:80; } server { ###### 请求匹配 listen 80; # 客户端请求的端口 server_name _; # 客户端请求的域名;区分不同服务(可多个空格区分,支持正则) location / { ###### 重写配置 rewrite ^<规则>$ <目的地> break; ###### 转发到后端配置 proxy_pass http://backend-server-name$request_uri; # 转发到后台服务地址,来自于 upstream 项 proxy_http_version 1.1; # 指明版本(1.1默认为keep-alive长连接,1.0默认为短连接) proxy_set_header Host $host; # 保持原来的请求域名 proxy_ignore_client_abort on; # 客户端断网时,是否中断对后端的请求 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 从远程客户端IP到服务端的层层代理转发IP,多IP追加空格分隔 ###### Cookie 域名/路径 proxy_cookie_domain {backend-domain} {request-domain}; proxy_cookie_path {backend-path} {request-path}; } ###### 指定文件拒绝所有访问 location ~ ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md){ deny all; } ###### 限制的客户端 location \ { deny 172.18.0.101; # 拒绝的ip allow 172.18.1.10; # 允许的ip } ###### 客户端缓存配置 location ~* \.(js|css|jpg|svg|gif|png)$ { if (-f $request_filename) { # -f:只能是文件,因为这用-f判断了 expires 30d; # 缓存有效时长 30 天 break; } } ###### 防盗链配置 location ~* \.(gif|jpg|png|bmp)$ { # 指定格式禁止的请求来源:google/baidu valid_referers none blocked *.ttlsa.com server_names ~\.google\. ~\.baidu\.; if ($invalid_referer) { return 403; # 状态码 #rewrite ^/ http://www.ttlsa.com/403.jpg; } } ###### (前端) 错误机制 error_page 404 /404.html; # 错误码 转向的 错误页 error_page 500 502 503 504 /50x.html; # 错误码 转向的 错误页 location = /50x.html { # 错误页 指向的 静态页面 root /usr/share/nginx/html; } } }