• Nginx配置


    Nginx常用配置:

    1. jiangjunhuideMacBook-Pro:conf jiangjh$ vi nginx.conf

       #设置用户

      #user  nobody;

      #工作衍生进程数 通常代表cpu的核数(最好的数目是cpu的核数或者是核数的两倍)

      worker_processes  1;

      #设置错误文件的存放路径

      #error_log  logs/error.log;

      #error_log  logs/error.log  notice;

      #error_log  logs/error.log  info;

      #设置pid存放路径(pid是控制系统中重要文件)

      pid        logs/nginx.pid;

       #设置最大连接数

      events {

          worker_connections  1024;

      }

      #设定http服务器,利用它的反向代理功能提供负载均衡支持

       http {

          include       mime.types;

          default_type  application/octet-stream;

          #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

          # '$status $body_bytes_sent "$http_referer" '

          # '"$http_user_agent" "$http_x_forwarded_for"';

          #不记录日志文件的配置方式

          #关闭此项可减少IO开销,但也无法记录访问信息,不利用业务分析,一般运维情况不建议使用

          #access_log off;

          #只记录更为严重的错误日志,可减少IO压力

          error_log logs/error.log crit;

          #access_log  logs/access.log  main;

          #启用内核复制模式,应该保持开启达到最快IO效率

          sendfile        on;

          #tcp_nopush     on;

          #keepalive_timeout  0;

          keepalive_timeout  65;

          #开启gzip压缩

          gzip  on;

       #设置文件的大小的下限,如果小于这个大小就不使用压缩了

          gzip_min_lenth 1k;

       #什么的内存大小为4个 16k的大小的数据流存在内存中 压缩的结果要存储在内存中 申请的缓存资源

          gzip_buffers 4 16k;

          gzip_http_version 1.1;

       #gzip 要求客户端和服务器端双向支持 ,如何判断客户端支持gzip压缩

          gzip_vary on;

            #压缩的内容类别

          gzip_types text/plain text/css application/json application/x-javascript text/xml

          #静态文件缓存

            #最大缓存数量,文件未使用存活期

          open_file_cache max=655350 inactive=20s;

          #验证缓存有效期时间间隔

             open_file_cache_valid 30s;

            #有效期内文件最少使用次数

             open_file_cache_min_uses 2;

          #设定负载均衡的服务器列表

          upstream myserver{

                      #weight

                      ip_hash;

                      server localhost:8080 weight=1;

                      server localhost:8081 weight=1;

                  }

          server {

                listen       80;

                  server_name  localhost;

                #设置字符

                charset utf-8;

                #access_log  logs/host.access.log  main;

                location / {

                    root   html;

                    index  index.html index.htm;

                    #当目录中没有index.html 时自动列目录

                    autoindex on;

                }

                location ~.*.(jpg|png|swf|gif)${

                      #设置两天缓存自动删除

                      expires 30d;

                }

                location ~.*.(css|js)${

                      expires 1h;

                }

                #error_page  404              /404.html;

                # redirect server error pages to the static page /50x.html;

                error_page   500 502 503 504  /50x.html;

                location = /50x.html {

                    root   html;

                }

      }

     2. 反向代理:

      server {

        listen 80;
        server_name localhost;
        location / {
          #root  html;
          index index.html index.htm;  
          proxy_pass http://192.168.1.62:8080;(设置代理 把所有请求都代理发送到192.168.1.62:8080服务器)
      }
    3. 实现负载均衡:
      应该设置的三个部分,客户端发送请求给nginx , nginx 通过代理把请求发送给后台的服务器组,要先配置一个服务器组,对于请求应该交给那个服务器来处理,是由负载均衡策略来决定的, 
      对于服务器组的配置如下:
      upstream  服务器组的名称 {
        #均衡策略
        #none 轮询 (权重由 weight 决定)
        #ip_hash(把客户端的IP进行hash运算,平均分配给每一个服务器 同一个ip会访问同一个服务器,就是把IP和服务器的一个绑定,除非这个机器挂掉不然会一直都是访问这台机器,对于ip_hash 策略来说,权重是没有意义的)
        (fair 和url_hash 是第三方的策略,默认的nginx 是没有这个策略的)
        #fair(是一个动态的来分配的一个策略,根据服务器的响应能力的强弱来动态的分配客户端的请求
        #url_hash
        server 192.168.1.62:8080;
        server 192.168.1.63:8080;
        #weight :权重,值越高负载越大;
        server   192.168.1.66 weight=5;
        #backup: 备份机,只有非备份机都挂掉了才启用;
        server    192.168.1.64 backup;
        #down :停机标志,不会被访问(为了临时维护设置的一个停机标志)
        server  192.168.1.65 down;   
        # max_fails :达到指定次数认为服务器挂掉;
         #fail_timeout : 挂掉之后过多久再去测试是否已恢复:(默认都是都有着两个参数只是没有显现的显示出来,默认max_fails=1  ;   
        server  192.168.1.67 max_fails=2 fail_timeout=60s; 
      }
      server {
        listen 80;
        server_name localhost;
        location / {
        #root html;
        index index.html index.htm;
        proxy_pass http://服务器组的名称(与upstream的服务器组的名称向对应)(nginx 把代理的请求发送给服务器组,然后由服务器组内部的策略自己决定发送给哪一个服务器来处理请求)(默认的事服务器组什么都不写为平均的转发策略,一次接收一次请求。(平均轮循)
      }
     
  • 相关阅读:
    关联原理说明
    一个软件测试工程师的学习体验
    缺陷漏测分析:测试过程改进
    自动化测试的7个步骤
    ACM题目————Subsequence
    ACM题目————Aggressive cows
    ACM题目————列变位法解密
    C++TSL之map容器(悲伤的故事)
    ACM题目————二叉树最大宽度和高度
    ACM题目————装箱问题
  • 原文地址:https://www.cnblogs.com/junhuijiang/p/4821446.html
Copyright © 2020-2023  润新知