nginx前端常用配置

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    keepalive_timeout  65;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    # 数值必须是32的倍数
    server_names_hash_bucket_size 64;

    # 开启gzip
    gzip on;
    # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
    gzip_min_length 1k;
    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
    gzip_comp_level 4;
    # 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/bmp application/x-bmp image/x-ms-bmp application/vnd.ms-fontobject font/ttf font/opentype font/x-woff;
    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;
    # 禁用IE 6 gzip
    gzip_disable "MSIE [1-6]\.";
    # 设置压缩所需要的缓冲区大小
    gzip_buffers 32 4k;
    # 设置gzip压缩针对的HTTP协议版本
    gzip_http_version 1.1;
    server {
        listen       83;
        server_name  localhost;
        client_max_body_size 1000M;
        # = 开头表示精确匹配,如 = /,后面不能带任何字符串,精确匹配 / ,主机名后面不能带任何字符串;
        # ^~ 开头表示uri以某个常规字符串开头,不是正则匹配,如^~ /images/ 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条;
        # ~ 开头表示区分大小写的正则匹配;
        # ~* 开头表示不区分大小写的正则匹配;
        # / 通用匹配, 如果没有其它匹配,任何请求都会匹配到。
        # 优先级 ( location = ) > ( location 完整路径 ) > ( location ^~ 路径 ) > ( location * 正则顺序 ) > ( location 部分起始路径 ) > ( / )
        location / {
            root D:/preject/nginx-demo;
            # index index.html;
            # 如果不写上 $uri/,当直接访问一个目录路径时,并不会去匹配目录下的索引页
            # 比如 请求 http://locahost:83/test.html
            # 会依次查找 1.文件D:/preject/nginx-demo/test.html  2.文件夹 D:/preject/nginx-demo/test.html下的index文件  3. 请求D:/preject/nginx-demo/index.html
            try_files $uri $uri/ /index.html;
            if ($request_filename ~* .*\.(?:htm|html)$){
                 # 这里注意:no-cache与no-store的区别,no-cache表示不缓存过期资源,缓存会向服务器进行有效处理确认之后处理资源,而no-store才是真正的不进行缓存。
                 add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
            }
            if ($request_filename ~* .*\.(?:js|css)$) {
                expires max;
            }
            if ($request_filename ~* .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$){
                expires max;
            }
        }
        location ^~/baiduImg/ {
            # 代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
            proxy_pass https://img0.baidu.com/;
        }
        location ^~/baidu/ {
            proxy_redirect off;
            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_pass https://www.baidu.com/;
        }
    }
    server {
        listen       83;
        server_name  localuat-epec.sinopec.com;

        location / {
           root D:/preject/nginx-demo/sinopec;
           index  index.html index.htm;
           try_files $uri $uri/ /index.html;
            if ($request_filename ~* .*\.(?:htm|html)$){
                 add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
            }
            if ($request_filename ~* .*\.(?:js|css)$) {
                expires max;
            }
            if ($request_filename ~* .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$){
                expires max;
            }
            if ($request_filename ~* .*\.(?:woff|ttf)$){
                add_header 'Access-Control-Allow-Origin' 'http://localuat-epec.sinopec.com:8000' always;
                add_header 'Access-Control-Allow-Methods' 'GET';
                add_header 'Access-Control-Allow-Credentials' true;
                add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Content-Type';
                expires 7d;
            }
        }
    }
    server {
        listen       84;
        server_name  localuat-epec.sinopec.com;

        location / {
           root D:/preject/product-front/product;
           index  index.html index.htm;
           #try_files $uri $uri/ /index.html;
            if ($request_filename ~* .*\.(?:htm|html)$){
                 add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
            }
            if ($request_filename ~* .*\.(?:js|css)$) {
                expires max;
            }
            if ($request_filename ~* .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$){
                expires max;
            }
            if ($request_filename ~* .*\.(?:woff|ttf)$){
                add_header 'Access-Control-Allow-Origin' 'http://localuat-epec.sinopec.com:8000' always;
                add_header 'Access-Control-Allow-Methods' 'GET';
                add_header 'Access-Control-Allow-Credentials' true;
                add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Content-Type';
                expires 7d;
            }
        }
    }
     server {
            listen       443 ssl;
            server_name  git.paas.sinopec.com;
            ssl_certificate      server.crt;
            ssl_certificate_key  server.key;
            #设置存储session参数的缓存的类型和大小。缓存可以是下面任何一种类型
            #off 严格禁止使用会话缓存:nginx明确告知客户端会话不可重用。
            #none 会话缓存是不允许的:nginx告知客户端会话可以重用,但并没有在缓存中存储会话参数。
            #builtin 在OpenSSL中构建缓存;只能被一个工作进程使用。缓存的大小在会话中指定,如果没有指定大小,默认20480个会话。使用内置缓存会导致内存碎片化。
            #shared 缓存在所有工作进程之间共享。缓存大小按照字节为单位指定;1MB可以存储4000个会话。每块共享内存都应该起个名字。同一块缓存可以在多个虚拟服务中使用。
            #启用 SSL Session 缓存可以大大减少 TLS 的反复验证,减少 TLS 握手的 roundtrip。虽然 session 缓存会占用一定内存,但是用 1M 的内存就可以缓存 4000 个连接,可以说是非常非常划算的。同时,对于绝大多数网站和服务,要达到 4000 个同时连接本身就需要非常非常大的用户基数
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
            # 限制请求体的大小,若超过所设定的大小,返回413错误。
            client_max_body_size 1000M;
            location / {
                proxy_redirect off;
                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_pass https://git.paas.sinopec.com;
            }
        }
}

你可能感兴趣的:(nginx前端常用配置)