新闻资讯

/News and information

Nginx配置说明

所属分类:资讯中心
点击量:183
发布时间:2024-03-23 19:01:12
###### 全局块
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;
        }
    }
}