安装配置
1、 下载nginx镜像
docker pull nginx
2、创建挂载目录
cd /usr/local/work/docker/nginx
在当前目录下创建:
mkdir logs :存放nginx日志
mkdir conf.d : 存放的镜像里default.conf文件
mkdir www : nginx网站目录
3、启动nginx
docker run -d nginx
4、复制nginx容器配置文件
docker cp 容器id:/etc/nginx/nginx.conf /usr/local/work/docker/nginx/nginx.conf
docker cp 容器id:/etc/nginx/conf.d/default.conf /usr/local/work/docker/nginx/conf.d/default.conf
5、关闭容器
docker stop 容器id
6、删除该容器
docker rm 容器id
7、创建新的nginx容器,并配置
docker run -d --name nginx -p 80:80 \
-v /usr/local/work/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/work/docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-v /usr/local/work/docker/nginx/www:/usr/share/nginx/html \
-v /usr/local/work/docker/nginx/logs:/var/log/nginx \
nginx
8、在www目录下创建index.html
9、访问服务器ip或域名,显示index页面
======基本安装配置完成======
设置负载均衡(每次修改了配置,需要重启nginx容器让配置生效)
前提: 先在服务器启动服务一、服务二,端口8001,8002
方式一:在conf.d/default.conf 配置文件配置 (服务器域名)
# 在server 外面配置
# 轮询
upstream server1 {
server 域名:8001 weight=5;
server 域名:8002 weight=5;
}
server{
# 访问路径
location /test/ {
proxy_pass http://server1/;
}
}
由于是从nginx容器转发出来的,并转发到的域名+端口, 所以要在服务器的安全组 规则上 开放8001、8002端口
最后访问 域名/test 就能看到端口在切换了
方式二:通过ip 转发到宿主机的服务(不需要在服务器安全组打开8001、8002端口)
# 172.17.0.1 为宿主机的ip
upstream server2{
server 172.17.0.1:8001;
server 172.17.0.1:8002;
}
# ip访问
location /ip/{
proxy_pass http://server2/;
}
注意proxy_pass 转发的时候,末尾 / 的区别
假如请求地址是: xxx.com/ip/test
1、proxy_pass http://server2/;
这种转发到宿主机的地址就是: 172.17.0.1:8001/test
2、proxy_pass http://server2;
这种转发到宿主机的地址就是: 172.17.0.1:8001/ip/test
设置服务器只允许域名访问
在server里面添加:
server_name xxx.com;
if ($host != 'xxx.com'){
return 403;
}
效果如下:
常用命令:
docker ps : 查看正在运行的容器
docker ps -a : 查看正在运行 和 已停止的容器
docker start 容器id : 启动已存在的容器
docker stop 容器id: 停止容器
docker restart 容器id:重启容器
docker rm 容器id:删除容器
docker rmi 镜像id:删除镜像
docker info:查看docker信息
docker inspect 容器id:查看容器信息、版本等
docker system + 参数 : 查看docker磁盘占用信息等
docker logs 容器id: 查看容器运行日志
docker logs --tail 20 容器id: 查看容器最后20行日志
示例:
docker logs -f -t --since="2017-05-31" --tail=10 容器Id
docker logs [OPTIONS] CONTAINER
Options:
--details 显示更多的信息
-f, --follow 实时输出日志,最后一行为当前时间戳的日志
--since string 输出日志开始日期,即只输出指定日期之后的日志。
--tail string 显示最后多少行日志, 默认是all
(如: -tail=10 : 查看最后的 10 行日志。)
-t, --timestamps 显示时间戳
查看日志参考:https://cloud.tencent.com/developer/article/1486571