Nginx
Nginx工作原理图
1.Nginx实现tomcat集群的负载均衡
Nginx的.yml配置文件解释
Nginx的默认配置文件的作用
2.Nginx部署Nginx集群
作用:因为浏览器访问要经过Nginx在通过Nginx进行负载均衡,所以如果Nginx出错会导致项目无法运行,因此要再搭建一个Nginx作为备用。
步骤1:为了避免其他容器干扰我们的视线,先停止所有容器docker stop $(docker ps -qa) ;docker rm
步骤2:在opt目录下创建docker_nginx_cluster用来存放相关的文件
docker_nginx_cluster文件解释
步骤3:因为有docker-compose.yml文件,所以直接运行容器(docker-compose up -d)
步骤4:可以使用命令docker ps检查是否有两个Nginx容器和创建虚拟路径的haproxy容器
步骤5:在浏览器输入Linux的地址
结果如下
步骤6:最后故意停止主要容器(Master),来测试访问能否切换到备用Nginx容器(slave)
报错解决:
如果出现以下错误
systemctl stop docker ## 停止docker
rm /var/lib/docker/network/files/local-kv.db ##删除文件,遇到循环打y表示要删除
systemctl start docker ## 启动docker
https://my.oschina.net/u/4308169/blog/3371101 ## 此网站解释了为什么会出现这个错误
错误2:表示无法更新或者下载Nginx容器
解决:这是可能你的Dockerfile中下载的Nginx版本过高的原因
3.Nginx实现动静分离
作用:以前无论是静态资源还是动态请求都是交给tomcat容器处理,要是用户量多起来了就会导致tomcat服务器压力过大,因为Nginx也是可以处理HTTP协议的容器,所有可以把静态资源的请求交给Nginx处理
步骤1:在Linux中创建一个目录opt用来存放各种容器,进入这个目录,再创建一个目录(docker_nginx)用来管理nginx,在这个文件中创建compose容器的配置文件(docker-compose.yml),用来管理nginx这个容器的下载,启动,停止等操作
docker-compose.yml文件解释:
步骤2:为了生成没有的文件夹,需要停止并删除Nginx容器(docker-compose down),然后重新启动(docker-compose up -d)
步骤3:将静态文件放入到Linux下和Nginx目录相映射的目录下
步骤4:在Linux中的任务完成,最后只要在Nginx的配置文件中配置,静态资源访问规则
Nginx的默认文件解读:
步骤5:因为修改了Nginx下的默认配置文件,所以要重新启动Nginx容器(docker-compose restart)
最终结果:在浏览器中访问虚拟机的地址,端口默认80可以不用写
1.动态代理(反向代理)请求
在Nginx的默认配置文件中修改地址proxy_pass(地址改为自己tomcat访问的地址)
location / {
proxy_pass http://192.168.1.129:8080/;
}
2.处理静态文件
在Nginx的默认配置文件中修改root
location /html {
root /data; # 不要少写一个/,是/data,而不是data,当你访问/html就去/data/html下找资源
index index.html; # 如果配置index可以少输index.html
}
location /img {
root /data; # 不要少写一个/,是/data,而不是data,当你访问/img就去/data/img下找资源
autoindex on; # 扩展开,效果如下面的测试图示
}