zoukankan      html  css  js  c++  java
  • nginx 学习二(配置项)

    1,主要分为三大模块

    2,Nginx集群搭建。

    集群后负载均衡四种方式:

    一,轮询法(默认):将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载,性能

    upstream tomcat_server {
      server 192.168.10.11:8080 weight=1;
      server 192.168.10.12:8080 weight=1;
    }

    二,加权轮询法(weight):不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同,给性能高的加权,性能低的减少权重,weight的值越大分配到的访问概率越高

    upstream tomcat_server {
      server 192.168.10.11:8080 weight=1;
      server 192.168.10.12:8080 weight=2;
    }

    三,源地址哈希法:同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问(可以解决session问题)

    upstream tomcat_server {
        ip_hash;
        server 192.168.10.11:8080 weight=1;
        server 192.168.10.12:8080 weight=1;
    }

    四,最小连接数法:根据后端服务器当前的连接情况,动态地选取其中当前积压连接,数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率

    upstream tomcat_server {
        least_conn;
        server 192.168.10.11:8080 weight=1;
        server 192.168.10.12:8080 weight=1;
    }

    五,Fair:根据后端服务器的响应时间来分配请求,响应时间短的优先分配(比weight、ip_hash更智能的负载均衡算法。需安装upsteram_fair模块)

    upstream tomcat_server {
        fair;
        server 192.168.10.11:8080 weight=1;
        server 192.168.10.12:8080 weight=1;
    }

    • 下载地址:https://github.com/gnosek/nginx-upstream-fair/tree/master
    • 解压zip:unzip nginx-upstream-fair-master.zip
    • 增加模块: ./configure --prefix=/opt/nginx --add-module=/opt/nginx-upstream-fair-master
    • defalut_port问题修改:cd nginx-upstream-fair-master
    • sed -i 's/default_port/no_port/g' ngx_http_upstream_fair_module.c
    • make
    • make install

    六,url_hash:按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器(提高后端缓存服务器的效率,需安装Nginx的hash软件包)

    upstream tomcat_server {
        hash $request_uri;
        server 192.168.10.11:8080 weight=1;
        server 192.168.10.12:8080 weight=1;
    }

    • 下载地址:https://github.com/evanmiller/nginx_upstream_hash
    • 解压zip:unzip nginx_upstream_hash-master.zip
    • 增加模块: ./configure --prefix=/opt/nginx --add-module=/opt/ nginx_upstream_hash-master
    • make
    • make install

    3,打日志(访问日志,错误日志)

    $remote_addr: 客户端的ip地址(代理服务器,显示代理服务ip)
    $remote_user: 用于记录远程客户端的用户名称(一般为“-”)
    $time_local: 用于记录访问时间和时区
    $request: 用于记录请求的url以及请求方法
    $status: 响应状态码,例如:200成功、404页面找不到等。
    $body_bytes_sent: 给客户端发送的文件主体内容字节数
    $http_user_agent: 用户所使用的代理(一般为浏览器)
    $http_x_forwarded_for: 可以记录客户端IP,通过代理服务器来记录客户端的ip地址
    $http_referer: 可以记录用户是从哪个链接访问过来的

    4,Nginx动静分离:动态请求跟静态请求分开(Nginx 处理静态页面,Tomcat处理动态页面)

    1. 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案
    2. 一种是动态跟静态文件混合在一起发布,通过 nginx 来分开

    5,nginx优化

    1,高并发下Nginx配置限流
    2,高并发下Nginx安全配置
    3,Nginx配置优化之进程数、并发连接数、系统优化
    4, Nginx配置优化之长连接
    5, Nginx配置优化之压缩
    6,Nginx配置优化之状态监控
    7,Nginx与其它解决方案搭配组合

    高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求

    高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput)单位时间内处理的请求数量,每秒查询率QPS(Query Per Second)每秒响应请求数,并发用户数等

    本想把日子过成诗,时而简单,时而精致,不料日子却过成了一首歌,时而不靠谱,时而不着调
  • 相关阅读:
    01
    py5.30
    py 5.28
    py5.25
    py 5.24
    py 5.22
    py5.21
    py 5.18
    py 5.17
    py 5.16
  • 原文地址:https://www.cnblogs.com/chuanq/p/12450018.html
Copyright © 2011-2022 走看看