一:Nginx配置实例 - 反向代理

 实例一:

  1.1:实现效果

    在Windows浏览器地址栏中输入www.123.com,跳转到Linux系统中的tomcat主页面

    访问Nginx:192.168.92.130:80

    访问Tomcat:192.168.92.130:8080

  1.2:访问过程分析

  1.3:具体配置

   1.3.1:在windows的host文件中配置域名和IP对应关系的配置,在host文件中添加内容:IP地址和内容

  

这时在浏览器输入www.123.com:8080即可访问到Tomcat页面

      1.3.2:在Nginx进行请求转发的配置(反向代理配置)

    

     vi nginx.conf修改文件

 实例二:

    2.1:实现效果

     使用Nginx反向代理,根据访问的路径跳转到不同端口的服务中心

     访问http://192.168.92.130:9001/edu/   直接跳转到127.0.0.1:8080

     访问http://192.168.92.130:9001/vod/   直接跳转到127.0.0.1:8081

      2.2:准备两个Tomcat,一个8080端口,一个8081端口

      在tomcat8080中进入到webapps文件下,创建edu文件,创建a.html(内容8080)

      在tomcat8081中进入到webapps文件下,创建vod文件,创建a.html(内容8081)

    2.3:具体配置

      在请求路径中包含edu的访问8080端口,请求路径中包含vod的访问8081端口

    测试访问成功!

    

二:Nginx配置实例 - 负载均衡

   2.1:实现效果

    在浏览器中输入地址http://192.168.92.130/edu/a.html,平均分配到8080和8081端口中

    在两台tomcat中webapps文件中,创建edu文件夹,在edu文件夹中创建a.html页面

   2.2:具体配置

   2.3:负载均衡的分配策略

    1:轮询(默认)

       每个请求根据时间顺序逐一分配带不同的服务器,如果服务器down掉,会自动剔除

    2:weight

       weight代表权重,默认为1,权重越高被分配的客户端越多

    3:ip_hash

      每个请求按访问ip的hash结果分配;这样能固定访问访问同一个服务器,可以解决session的问题

    4:fair(第三方)

      按后端服务器的响应时间来分配请求,响应时间越短的优先分配

三:Nginx配置实例 - 动静分离

    1:动静分离简单来说就是把静态请求和动态请求分开,不能理解成只是单纯的静态页面和动态页面分开,

     可以理解成使用Nginx处理静态请求,Tomcat处理动态请求。目前动静分离实现方式有两种:

      1.1:纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案

      1.2:动态和静态文件混合发布,通过Nginx分开

    2:准备工作

      创建data文件,在data文件中创建www文件和img文件,在www文件中加入a.html,在img文件中加入一张图片

      data/www/a.html       data/img/3.png

     3:Nginx具体配置

四:Nginx配置高可用集群

  

   1:准备两台服务器,分别安装nginx,keepalived

     安装keepalived命令:yum install keepalived -y

查看是否安装成功命令:rpm -q -a keepalived

安装路径:/etc/keepalived/keepalived.conf

   2:主从配置

    2.1:修改keepalived的配置文件keepalived.conf

  1. global_defs {
  2. notification_email {
  3. acassen@firewall.loc
  4. failover@firewall.loc
  5. sysadmin@firewall.loc
  6. }
  7. notification_email_from Alexandre.Cassen@firewall.loc
  8. smtp_ server 192.168.17.129
  9. smtp_connect_timeout 30
  10. router_id LVS_DEVEL # LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机
  11. }
  12.  
  13. vrrp_script chk_http_ port {
  14. script "/usr/local/src/nginx_check.sh"
  15. interval 2 # (检测脚本执行的间隔)2s
  16. weight 2 #权重,如果这个脚本检测为真,服务器权重+2
  17. }
  18.  
  19. vrrp_instance VI_1 {
  20. state BACKUP # 备份服务器上将MASTER 改为BACKUP
  21. interface ens33 //网卡名称
  22. virtual_router_id 51 # 主、备机的virtual_router_id必须相同
  23. priority 100 #主、备机取不同的优先级,主机值较大,备份机值较小
  24. advert_int 1 #每隔1s发送一次心跳
  25. authentication { # 校验方式, 类型是密码,密码1111
  26. auth type PASS
  27. auth pass 1111
  28. }
  29. virtual_ipaddress { # 虛拟ip
  30. 192.168.17.50 // VRRP H虛拟ip地址
  31. }
  32. }

    2.2:在路径/usr/local/src/ 下新建检测脚本 nginx_check.sh

  1. #! /bin/bash
  2. A=`ps -C nginx -no-header | wc - `
  3. if [ $A -eq ];then
  4. /usr/local/nginx/sbin/nginx
  5. sleep
  6. if [`ps -C nginx --no-header| wc -1` -eq 0 ];then
  7. killall keepalived
  8. fi
  9. fi

  3:两台服务器启动Nginx和keepalived

     systemctl start keepalived.service   #启动keepalived
        ps -ef I grep keepalived      #查看keepalived是否启动

        systemctl stop keepalived.service     #停止keepalived

     4:测试

        在浏览器地址栏输入虚拟ip地址192.168.50.20

        把主服务器(192.168.92.130) nginx和keealived停止,再输入192.168.50.20

五:Nginx工作原理

   1:master & worker

    master相当于管理者,worker可以有多个,当请求进来后,master告诉worker,worker进行处理

   2:worker如何进行工作(争抢机制)

  3:一个master和多个worker的好处

    3.1:可以使用 nginx -s reload 热部署,利用nginx进行热部署操作

    3.2:每个worker都是独立的进程,不需要加锁,如果其中一个worker出现问题,并不会影响到其他的

  4:需要设置多少个worker

     Nginx和Redis类似,都采用了IO多路复用机制,每个worker都是一个独立的进程,但每个进程只有一个主线程,

     通过异步非阻塞的方式来处理请求,worker数和服务器的cpu数相等最为适宜,如下:

     # 设置worker数量
     worker.processes 4;

       # 也可以把值设置为auto,nginx会自动检测当前主机的cpu核心数,并启动对应数量的worker进程

       worker.processes auto;

# work绑定cpu(4work绑定4cpu)
            worker_cpu_affinity 0001 0010 0100 1000

# work绑定cpu (4work绑定8cpu中的4个)
           worker_cpu_affinity 0000001 00000010 00000100 00001000

  

  5:连接数:worker_connection

     这个值是表示每个worker进程所能建立连接的最大值,所以,一个nginx 能建立的最大连接数,

       应该是worker_connections * worker_processes。当然,这里说的是最大连接数,对于HTTP

       请求本地资源来说,能够支持的最大并发数量是worker_connections * worker_processes,

       如果是支持http1.1的浏览器每次访问要占两个连接,

    所以普通的静态访问最大并发数是: worker_connections * worker_processes / 2

       而如果是HTTP作为反向代理来说,最大并发数量应该是worker_connections * worker_proceses/4.

       因为作为反向代理服务器,每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接.

      5.1:发送一个请求,占用了worker的几个连接数

        2个或4个

    5.2:nginx有一个master,四个worker,每个worker支持最大的连接数是1024,支持的最大并发数是多少

       worker_connections * worker_processes / 2

       worker_connections * worker_proceses/4.

Nginx具体配置(三)的更多相关文章

  1. nginx下配置多个web服务

    参考 nginx配置详解  nginx反向代理与负载均衡详解 一.nginx简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能 ...

  2. VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)

    首先启动Nginx 1. 相关浏览 两个 Tomcat 配置:  VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...

  3. Nginx Location配置总结

    Nginx Location配置总结 语法规则: location [=|~|~*|^~] /uri/ { - }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即 ...

  4. 理解nginx的配置

    Nginx配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置) ...

  5. 《深入理解Nginx》阅读与实践(一):Nginx安装配置与HelloWorld

    最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码的能力,二是想学学Nginx优秀的架构设计,三是想找一个点深入下Linux下网络编程的细节.侯 ...

  6. nginx的配置总结

    总体而言,nginx的配置比起apache来是要简洁很多,而言容易理解得多的,另外官网的文档也十分的简洁易懂.我们先看一个简化版的配置文件nginx.conf: #user nobody; worke ...

  7. 图文解说:Nginx+tomcat配置集群负载均衡

    图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用  作者:niumd Blog:http://ari.iteye ...

  8. CentOS 6.6 nginx PHP 配置

    /************************************************************************* * CentOS 6.6 nginx PHP 配置 ...

  9. nginx性能配置参数说明:

    nginx的配置:main配置段说明一.正常运行的必备配置: 1.user username [groupname]; 指定运行worker进程的用户和组 2.pid /path/to/pidfile ...

随机推荐

  1. [注]6W运营法则教你盘活社区内容运营

    社区运营人员大体分为两种:一种是内容运营,这类人才基于产品,一般对文字以及对广告文案比较敏感:另外一种则是更多基于产品推广运营,前者需要把内容最大化地曝光,后者则是把产品推送给用户,两者的是相辅相成, ...

  2. Java IO(五)字节流 FileInputStream 和 FileOutputStream

    Java IO(五)字节流 FileInputStream 和 FileOutputStream 一.介绍 字节流 InputStream 和 OutputStream 是字节输入流和字节输出流的超类 ...

  3. 获取Class实例的方式与类加载器

    1. java.lang.Class:   是反射的源头 2.如何获取Class的实例(3种) 3.关于类的加载器 TestReflection2 package com.aff.reflection ...

  4. python requests用于测试

    https://blog.csdn.net/niedongri/article/details/71404314 https://blog.csdn.net/temanm/article/detail ...

  5. & 异步使用场景

    异步的使用场景: 1.不涉及共享资源,或对共享资源只读,即非互斥操作 2.没有时序上的严格关系 3.不需要原子操作,或可以通过其他方式控制原子性 4.常用于IO操作等耗时操作,因为比较影响客户体验和使 ...

  6. Chisel3 - Tutorial - Functionality

    https://mp.weixin.qq.com/s/3hDzpJiANdwp07hO03psyA   演示使用函数进行代码复用的方法.   参考链接: https://github.com/ucb- ...

  7. 金融SaaS平台之构思篇

    背景介绍 从事过金融服务行业的同学们都知道,业务系统是非常之多的,核心的就有估值.交易.TA.资讯系统,其他类似产品生命周期系统.投后分析系统等待,而且各个业务系统的逻辑非常之复杂,所以一般金融机构都 ...

  8. Java实现蓝桥杯VIP 算法训练 阶乘末尾

    试题 算法训练 阶乘末尾 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定n和len,输出n!末尾len位. 输入格式 一行两个正整数n和len. 输出格式 一行一个字符串,表示 ...

  9. Java实现 蓝桥杯 算法提高 数组求和

    试题 算法提高 数组求和 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输入n个数,围成一圈,求连续m(m<n)个数的和最大为多少? 输入格式 输入的第一行包含两个整数n, ...

  10. Java实现考察团组成

    考察团组成 某饭店招待国外考察团.按照标准,对领导是400元/人,随团职员200元/人,对司机50元/人. 考察团共36人,招待费结算为3600元,请问领导.职员.司机各几人. 答案是三个整数,用逗号 ...