目录:
(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节点即可;
例如:com">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
添加代码:在访问的时候,对方根据我们的域名进行不同服务器的映射
添加之后就可以正常访问了: