• 2.5 Nginx服务器基础配置实例


    pay平台nginx配置文件详解

    ###全局块###
     
    user www www; #指定运行worker process 的用户和用户组
    worker_processes 4; #指定Nginx开启的子进程数量
    error_log /data/www/logs/nginx/nginx_error.log ; #指定全局错误日志文件
    pid /data/www/logs/nginx/nginx.pid; #指定nginx主进程的地址
    worker_rlimit_nofile 65535; #指定一个Nginx进程最多可打开的文件描述符数量
     
    ##events 块用来指定Nginx的工作模式以及连接上限##
    events
    {
      use epoll;    #指定Nginx的工作模式 ,Nginx支持的工作模式又select、poll、kqueue、epoll、rtsig、和
                     /dev/poll,其中select和poll是标准工作模式,kqueue和           epoll是高效工作模式,epoll用于Linux平台
      worker_connections 65535; #指定Nginx中每个进程的最大连接数(即接收客户端的最大请求数)
    }
     
    ### http块负责HTTP服务器相关的属性配置 ###
    http
    {
      include mime.types; #包含 etc/nginx/mine.type 文件,此文件用于设定文件的mime类型便于nginx识别
      default_type application/octet-stream; #设置默认文件类型为二进制流
     
      #nginx用ngx_http_proxy_module模块实现反向代理需求
      proxy_redirect off;
      proxy_set_header Host $host; #ngx_http_proxy_module模块需要读取的配置文件 修改http请求头
      proxy_set_header X-Real-IP $remote_addr; #»ñæip
      # X-Forwarded-For 字段表示该请求是由谁发起的
      #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #»ñúµÄæip
      client_max_body_size 10m;
      client_body_buffer_size 128k;
      proxy_connect_timeout 90; #跟后端服务器连接超时时间,发起握手等候响应时间
      proxy_send_timeout 90; #后端服务器回传时间,就是在规定时间内后端服务器必须传完所有数据
      proxy_read_timeout 90; #连接成功后等待后端服务器的响应时间,已经进入后端的排队之中等候处理
      proxy_buffer_size 4k; #代理请求缓冲区,会保存用户的头信息以供nginx进行处理
      proxy_buffers 4 32k; #同上,告诉nginx保存单个用几个buffer最大用多少空间
      proxy_busy_buffers_size 64k; #如果系统很忙的时候可以申请最大的 proxy_buffers
      proxy_temp_file_write_size 64k; #proxy缓存临时文件的大小
     
      charset utf-8;
      server_names_hash_bucket_size 128;
      client_header_buffer_size 32k; #客户端头信息
      large_client_header_buffers 4 32k;
     
      sendfile on; #开启高效的文件传输模式
      tcp_nopush on; #设置 tcp_nopush 和 tcp_nodelay 为 on 是为防止网络阻塞。
     
      keepalive_timeout 60; #设置客户端连接保活动的超时时间
     
      #tcp_nodelay on;
     
      gzip on;
      gzip_min_length 1k;
      gzip_buffers 4 16k;
      gzip_http_version 1.0;
      gzip_comp_level 2;
      gzip_types text/plain application/x-javascript text/css application/xml;
      gzip_vary on;
     
      # limit_zone crawler $binary_remote_addr 10m;
     
      log_format access_ssl '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" $http_x_forwarded_for';
     
    ### 开启nginx的缓存功能,需要添加如下两行 ###
    #这一行分别表示:创建缓存的时候可能生成一些临时文件存放的位置
      proxy_temp_path /home/proxy_temp_dir;
     
    #这一行分别表示:定义缓存存储目录;缓存级别,表示缓存目录的第一级目录是1个字符,第二级目录是2个字符;内核中建立用于缓存缓存数据源数据的空间,查找缓存的时候,先从这个内核空间中找到,缓存数据的源数据,然后再到对应目录中查找缓存;这一行分别表示:缓存的数据,1小时内没有被访问过就删除;缓存空间最大值。
      proxy_cache_path /home/passport levels=1:2 keys_zone=cache_passport:200m inactive=1d max_size=30g;
     
    #nginx对于 upstream 默认使用的是基于IP的转发
      upstream tomcats_pay { #upstream的负载均衡 采用 ip_hash 轮询策略
      #ip_hash;
      server 127.0.0.1:8080 max_fails=2 fail_timeout=10s;
      }
     
    ##server 块用于配置HTTP虚拟服务器 ###
    server {
      listen 80; #此服务器监听的端口
      server_name pay.kedou.com; #指定此服务器的IP地址或域名
      #rewrite ^(.*) https://pay.kedou.com$1 permanent; #将HTTP请求重定向到 HTTPS
     
      index index.html index.htm; #定义此虚拟服务器的默认首页地址,按序依次访问定义的文件
      root /data/www/ROOT/pay/ROOT ; #定义虚拟服务器的根目录
      access_log /data/www/logs/nginx/logs/pay.kedou.com.log access_ssl; #此虚拟服务器的访问日志
     
      location / { #匹配访问路径以/开始的URI
        if ($remote_addr ~ "172.16.19.[5|6]") {
        access_log off;
      }
      proxy_next_upstream http_502 http_504 error timeout invalid_header; #失败连接的情形
      proxy_pass http://tomcats_pay; #代理哪个web服务器
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr; #后端节点机器获取客户端真实ip的第一种方案
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #后端节点机器获取客户端真实ip的第二种方案
      break;
     
      #rewrite_by_lua 'eeye.capture_itf_invoke()';
    }
     
    #注释掉的如下location块 表示所有静态文件由nginx直接读取不经过 tomcat 或 resin
      #location ~ .(gif|bmp|png|jpg|jpeg|swf|css|js)$ {
      # expires 2h;
      # root /data/www/ROOT/pay/ROOT ;
      # index index.html index.htm;
      # break;
      # }
     
     
      location /v/ {
        rewrite ^/v/[0-9]+.[0-9]+.[0-9]+/(.*)$ /$1 break;
        root /data/www/ROOT/;
      }
      location ~ ^/(assets)/ {
      root /data/www/ROOT/;
      }
      }
     
    ###配置对HTTPS请求的处理###
    server {
      listen 443; #监听443端口
      server_name kedou.com *.kedou.com; #虚拟服务器域名配置
      index login.jsp; #定义此虚拟服务器的默认首页地址
      root /data/www/ROOT/pay/ROOT ; #定义虚拟服务器的根目录
      ssl on; #开启ssl参数
      ssl_certificate 201713478180888.pem; #指定服务器证书
      ssl_certificate_key 201713478180888.key; #指定私钥
      ssl_session_timeout 5m; #指定 SSL 共享缓存的超时为 5 mins
      #ssl_protocols SSLv2 SSLv3 TLSv1; #指定 SSL 协议(Nginx 默认使用)
      #以 OpenSSL 库理解的格式指定密码(Nginx 默认使用)
      #ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
     
      #ssl_protocols SSLv3 TLSv1;# TLSv1.1 TLSv1.2;
      #ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
      #ssl_prefer_server_ciphers on;
     
      ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA
      -AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA
      -AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AE
      S128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AE
      S128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on;
      ssl_session_cache shared:SSL:10m; #指定 SSL 共享缓存的大小为 10M。
      ssl_session_tickets off;
      ssl_stapling on; # Requires nginx >= 1.3.7
      ssl_stapling_verify on; # Requires nginx >= 1.3.7
     
    location ~ ^/druid {
      proxy_pass http://tomcats_pay;
      allow 127.0.0.0/24;
      allow 192.168.17.0/24;
      allow 192.168.172.0/24;
      deny all;
      access_log off;
    }
    location /
    {
      proxy_next_upstream http_502 http_504 error timeout invalid_header; #失败连接的情形
     
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto https;
      proxy_redirect off;
      proxy_pass http://tomcats_pay; #代理的哪个服务器
    }
     
    location ~ .*.(jsp|do|html)?$
    {
      index index.jsp;
      proxy_next_upstream http_502 http_504 error timeout invalid_header;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto https;
      proxy_pass http://tomcats_pay;
    }
     
    location /v/ {
      rewrite ^/v/[0-9]+.[0-9]+.[0-9]+/(.*)$ /$1 break;
      root /data/www/ROOT/;
    }
    location ~ ^/(assets)/ { #静态资源配置 location ~ ^/(assets)/ 指需要访问该localhost下的哪个文件夹
      root /data/www/ROOT/; #root指资源在服务器中的绝对路径,此处配置不能出错,出错会找不到资源返回404
    }
     
      #log_format access_ssl '$remote_addr - $remote_user [$time_local] "$request" '
      # '$status $body_bytes_sent "$http_referer" '
      # '"$http_user_agent" $http_x_forwarded_for';
      access_log /data/www/logs/nginx/logs/pay.kedou.com-1-ssl.log access_ssl;
     
      }
     }
  • 相关阅读:
    MySQL 8.0+ 时区问题
    SSM框架整合搭建流程
    最大子段和、最大子矩阵和
    棋盘覆盖(分治)
    石子合并问题
    矩阵连乘
    selenium完成滑块验证
    背包问题(2)
    背包问题(1)
    皇后问题
  • 原文地址:https://www.cnblogs.com/veggiegfei/p/11001026.html
Copyright © 2020-2023  润新知