• Nginx学习(三)



    目录:

    (1)Nginx-静态代理

    (2)Nginx-静态代理案例-静态资源后缀名拦截处理

    (3)Nginx-静态代理案例-静态资源关键字拦截处理

    (4)Nginx-动静分离案例

    (5) Jmeter测试工具的介绍

    (6)Nginx-虚拟主机

    (7)Nginx-虚拟主机案例 


    (1)Nginx-静态代理

    把所有静态资源的访问改为访问nginx,而不是访问tomcat,这种方式叫静态代理。因为nginx更擅长于静态资源的处理,性能更好,效率更高。

             所以在实际应用中,我们将静态资源比如图片、css、html、js等交给nginx处理,而不是由tomcat处理。

            

     Nginx静态代理实现方式:

    方式一 在nginx.conf的location中配置静态资源的后缀

    例如:当访问静态资源,则从linux服务器/opt/static目录下获取(举例)

    location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid

    |doc|ppt|pdf|xls|mp3|wma)$ {

                 root /opt/static;

    }

    说明

    • ~ 表示正则匹配,也就是说后面的内容可以是正则表达式匹配
    • 第一个点 . 表示任意字符
    • *表示一个或多个字符
    • \. 是转移字符,是后面这个点的转移字符
    • | 表示或者
    • $ 表示结尾

    整个配置表示以 .后面括号里面的这些后缀结尾的文件都由nginx处理

    放置静态资源的目录,要注意一下目录权限问题,如果权限不足,给目录赋予权限;

    否则会出现403错误 chmod 755

    方式二 在nginx.conf的location中配置静态资源所在目录实现

    例如:当访问静态资源,则从linux服务器/opt/static目录下获取(举例)

    location ~ .*/(css|js|img|image) {

                 root   /opt/static;

    }

             xxx/css

    xxx/js

    xxx/img

    xxx/images

             我们将静态资源放入 /opt/static 目录下,然后用户访问时由nginx返回这些静态资源

    (2)Nginx-静态代理案例-静态资源后缀名拦截处理

     

    重新复制一份配置文件:

    vim编辑:

     删除项目中的图片目录:

    此时没有重启配置,再次访问myweb图片找不到了 

     关掉原来的nginx,重新启动更改后的nginx

     访问出现图片还是没有显示,出现这个问题:

     修改图片的权限:

     此时就可以正常访问了

    (3)Nginx-静态代理案例-静态资源关键字拦截处理

    编辑配置文件: 

     注释掉后缀名改换关键字匹配规则

     

    (4)Nginx-动静分离案例

    Nginx的负载均衡和静态代理结合在一起,我们可以实现动静分离,这是实际应用中常见的一种场景。

    动态资源,如jsp由tomcat或其他web服务器完成

    静态资源,如图片、css、js等由nginx服务器完成

    它们各司其职,专注于做自己擅长的事情

    动静分离充分利用了它们各自的优势,从而达到更高效合理的架构

    架构图

    整个架构中,一个nginx负责负载均衡,两个nginx负责静态代理。Nginx在一台Linux上安装一份,可以启动多个Nginx,每个Nginx的配置文件不一样即可

     

    复制一份nginx的配置文件: 

     编辑:

     把这个配置文件修改一下名字以便区分:80

    重新复制两份:命名81、82

     

     编辑81、82:

     

     修改:

     

     

    关闭现在的nginx,启动配置的nginx:

    分别启动80、81、82 

     

     访问:即可实现负载均衡,看到的是冬天资源的负载均衡

     

     因为两个都指向同一个图片,但是不知道静态资源是否实现负载均衡:可以指向不同的图片:

    创建目录:static1、static2往里面存放图片

    由于创建时没有方对位置,然后可以可视化移动图片 

     分别往里面存放两张图片:图片不同

    aa改名为001.jpg,移动到里面 

     

     

    修改nginx配置文件:81、82

     

     static改为static1

     static改为static2

     关掉这两个nginx,重新启动:

    启动:

     

     

     

    (5) Jmeter测试工具的介绍

    它是测试使用,测试软件的一个测试工具,能够帮助我们进行并发量的测试。

    解压,进入目录,找到启动文件:

     

    双击启动: 

     

     

    可以添加线程组:

     可以添加取样器:

     

    可以添加监听器:看执行结果 

     

     

     

     

    吞吐量:表示处理请求和响应的速度 ,当整体的环境,操作的组件越多,吞吐量必然后下降

    可以设置工作进程数8:

    修改80的配置文件:81、82主要是提供静态图片的,只更改80即可  

     把1改为8:

     重新启动:关闭原来的

     

    重新测试启动:

    通过性能调优,提高了吞吐量

     

     

    分别测试以下案例:

    测试案例一:

    关闭所有进程: 

     

     启动对应案例的配置文件:

    启动: 

     访问:

    修改测试:改为/,点击运行

     

     吞吐量4500

     调优:工作进程数改为8

     重启启动:显示8个工作线程

     4600:

     

     

     测试案例二:

    关闭次nginx的进程 

     启动:

     访问:案例是把图片移动到别的地方

     修改测试路径:

     

     

     4100:

     

     

    通过测试:可以测试以下自己的接口,看一下并发能力是怎样的,请求响应能力是怎样的 

    (6)Nginx-虚拟主机

    虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,这样我们的一台物理服务器就可以当做多个服务器来使用,从而可以配置多个网站。

    Nginx提供虚拟主机的功能,就是为了让我们不需要安装多个Nginx,就可以运行多个域名不同的网站。

    Nginx下,一个server标签就是一个虚拟主机。nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置多个server节点即可;

             例如:www.meituan.com 切换城市,可以看到不同的城市地址不一样(二级域名)

    比如一个公司有多个二级域名,没有必要为每个二级域名都提供一台Nginx服务器,就可以使用虚拟主机技术,在一台nginx服务器上,模拟多个虚拟服务器。

    配置虚拟主机方式:

    基于端口的虚拟主机(了解)

             基于端口的虚拟主机配置,使用端口来区分

             浏览器使用 同一个域名+端口 或 同一个ip地址+端口访问;

                      server {

        listen 8080;

                           server_name www.myweb.com;

                           location /myweb {

                         proxy_pass http://www.myweb.com;

                           }

    }

                      server {

                           listen 9090;

                           server_name www.myweb.com;

                           location /p2p {

                           proxy_pass http://www.p2p.com;

                           }

    }

    基于域名的虚拟主机(掌握)

    基于域名的虚拟主机是最常见的一种虚拟主机

             server {

            listen       80;

            server_name  www.myweb.com;

            location /myweb {

               proxy_pass http://www. myweb.com;

            }

    }

             server {

            listen       80;

            server_name  www.p2p.com;

            location /myweb {

               proxy_pass http://www.p2p.com;

            }

    }

             需要修改一下本地的hosts文件,文件位置:C:\Windows\System32\drivers\etc\hosts

             在hosts文件配置:

    192.168.208.128 www.myweb.com

    192.168.208.128 www.p2p.com

             前面是Linux的IP,后面是你自定义的域名

    (7)Nginx-虚拟主机案例 

     

     上传文件到linux

     

     这里配置了3台tomcat:9001、9002、9003分别放着几个war包:

     把项目移动到目录下:

     解压beijing.war

     分别解压:

     

     

     再复制出来一份配置文件:

     

    修改:

     

    启动nginx:

     直接访问时不可以的,需要设置域名映射到虚拟机的ip地址

     

     

    修改本机的配置:hosts 添加代码:在访问的时候,对方根据我们的域名进行不同服务器的映射

     添加之后就可以正常访问了:

     

      

     

     

  • 相关阅读:
    git远程分支强制覆盖本地分支
    C#内存管理
    Springboot信息泄露以及heapdump的利用
    如何设计实现系统应支持至少300个并行用户的同时访问和使用的需求
    Ubuntu20详细安装步骤
    web自动化系列-selenium的基本方法介绍
    opencv实现人脸识别(c++实现)
    论文阅读_变分自编码器_VAE
    分类预测 | MATLAB实现KOA-CNN-GRU开普勒算法优化卷积门控循环单元数据分类预测
    shell awk命令
  • 原文地址:https://blog.csdn.net/dengfengling999/article/details/127801139