一、在linux上安装Nginx
我用的是docker安装的,先安装运行nginx,运行以下命令下载最新的nginx镜像
docker run -d --name demonginx -p 80:80 nginx
docker ps查看是否运行,运行成功后创建自己的nginx目录,方便修改配置文件
在liunx /usr/local/docker(路径可以自行修改)下执行 mkdir -p ./nginx/{conf,html,logs}
创建挂载目录
进入自己创建的nginx文件,然后复制容器的目录到自己创建的目录(ef表示容器id)
docker cp ef:/etc/nginx/nginx.conf ./
dokcer cp ef:/etc/nginx/conf.d/default.conf ./conf/
完成后docker rm -f demonginx删除容器,重新以自己的目录映射打开nginx
docker run --name demonginx -p 80:80 -v /usr/local/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/docker/nginx/html/html:/usr/share/nginx/html/ -v /usr/local/docker/nginx/logs/:/var/log/nginx/ -v /usr/local/docker/nginx/conf/:/etc/nginx/conf.d --privileged=true -d nginx
完成后防火墙加入ip
firewall-cmd --list-all查看端口
设置开放的端口号
firewall-cmd --add-service=http –permanent
firewall-cmd --add-port=80/tcp --permanent
设置之后需要重启防火墙
firewall-cmd --reload
然后进入网页测试192.168.x.x(此处为你的linux的ip地址)
如果出现403,则进入我们的nginx目录下的html目录,加入一个index.html文件,随便写什么
二、测试反向代理
1、准备工作
首先准备tomcat服务器,用于nginx代理访问
也是用docker下载镜像
docker run -d --name demotomcat -p 8080:8080 tomcat
设置开放的端口号
firewall-cmd --add-port=8080/tcp --permanent
设置之后需要重启防火墙
firewall-cmd --reload
docker ps 查看tomcat是否启动成功,启动成功则进入192.168.x.x:8080查看
如果没有进入tomcat页面,则进入容器目录
docker exec -it demotomcat /bin/bash
rm -rf webapps
mv webapps.dist webapps
然后重新访问192.168.x.x:8080
2、配置nginx
准备好tomcat就开始配置nginx的配置文件
进入自己创建的nginx路径,进入conf文件夹,里面有一个default.conf
vim default.conf或者vi default.conf编辑文件
server_name 改成你liunx的ip地址
然后在下面的location中加入
如果是docker安装的tomcat,还是用linux的ip地址
proxy_pass 192.168.x.x:8080 ;(注意要加分号;)
如果是解压缩文件打开的tomcat,可以用127.0.0.1
修改完成后重启nginx
docker stop demonginx
docker start demonginx
修改成功后进入网页访问192.168.x.x成功访问到tomcat页面
三、测试负载均衡
1、准备工作
再用docker 开启一台端口为8081的tomcat服务器,和上面的配置差不多,以下就只写命令
docker run -d --name demotomcat2 -p 8081:8081 tomcat
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
docker exec -it demotomcat2 /bin/bash
rm -rf webapps
mv webapps.dist webapps
完成后此时需要修改tomcat的配置文件端口问8081
cd conf
在conf目录中有个server.xml文件,用vim打开,如果没有vim命令,先安装
apt-get update
apt-get install vim 安装过程中按y
完成后vim server.xml编辑文件
此处端口改掉,和原来不一致即可
此处改成8081
修改完成后,打开网页访问192.168.x.x:8081,页面访问成功
2、配置nginx
同样进入nginx的conf目录
vi default.conf编辑文件
加入upstream myserver{
server 192.168.81.130:8080;
server 192.168.81.130:8081;
}
location中加入
proxy_pass http://myserver;
修改完成后重启nginx
docker stop demonginx
docker start demonginx
3、几种轮询策略
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2、权重 weight
weight 代表权重默认为 1,权重越高被分配的客户端越多
3、 ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
4、 fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
四、测试动静分离
1、准备工作
docker运行的nginx是映射了主机的/usr/local/docker/nginx/html的
所以在html/html里面创建data文件夹,进入data文件夹创建www和image文件夹
在www放入静态网页资源html文件
在image放入图片,图片可以用Xshell6放入
查看是否安装了上传与下载程序:
rpm -qa |grep sz
rpm -qa |grep rz
如果没有安装,可以使用如下命令进行安装:
yum -install sz
yum -install rz
直接使用命令rz
2、配置nginx
进入docker的nginx的conf目录
cd /usr/local/docker/nginx/conf
vi default.conf编辑文件
root 配置一定要是容器映射的地址,最后要加上斜杠/
root /usr/share/nginx/html/data/;
配置location,其中autoindex on;可以不配置
配置了autoindex on;表示可以看到目录,如果想看到目录必须在最后加上/
image/ 不加最后的斜杠会出现404
五、配置高可用(待更新)