重庆市教育考试院门户网站,微商城 微网站制作,企业网站建设 调研,wordpress下拉式菜单在政务云上部署Web环境#xff0c;为了保证服务器安全#xff0c;甲方只开放一个端口且只允许使用https协议进行访问#xff0c;经过思考#xff0c;决定使用docker部署网站#xff0c;使用nginx反向代理#xff0c;通过不同的二级域名访问不同的端口。
1 使用docker部署…在政务云上部署Web环境为了保证服务器安全甲方只开放一个端口且只允许使用https协议进行访问经过思考决定使用docker部署网站使用nginx反向代理通过不同的二级域名访问不同的端口。
1 使用docker部署网站
参见https://blog.csdn.net/mingjing941018/article/details/1368015902 使用docker安装nginx
//安装命令
docker pull nginx
//查看安装的镜像,安装完成后会生成一个nginx镜像
docker images3 为了方便更改配置将nginx的配置文件和证书文件挂载到服务器本地
1.创建本地挂载目录//配置文件挂载目录
mkdir /opt/docker/nginx/conf.d -p
//证书文件存放目录
mkdir /opt/docker/nginx/cert -p2.先运行nginx容器查看配置文件目录//启动nginx
docker run --name nginx -p 80:80 -d nginx//进入docker的nginx容器
docker exec -it nginx bash//查找nginx配置文件default.conf
//这个在/etc/nginx/conf.d/default.conf
find / -name default.conf//查找nginx配置文件nginx.conf
//这个在/etc/nginx/nginx.conf
find / -name nginx.conf//退出容器
exit3.将容器的配置文件复制到我们的挂载目录中//把docker内的default.conf复制到外部
docker cp nginx:/etc/nginx/conf.d/default.conf /opt/docker/nginx/conf.d/default.conf//把docker内的nginx.conf复制到外部
docker cp nginx:/etc/nginx/nginx.conf /opt/docker/nginx/conf.d/nginx.conf4.删除之前的容器//停止容器
docker stop nginx//删除容器
docker rm -f nginx5.编辑挂载目录下的nginx.conf文件否则执行下一步查看日志信息会报异常nginx: [emerg] open() “/etc/nginx/mime.types” failed (2: No such file or directory) in /etc/nginx/nginx.conf删除红框内容
6.使用挂载命令运行容器//-v表示挂载的文件-v [该文件在容器外部的位置]:[该文件在容器内部的位置]
docker run --name nginx -p 80:80 -p 443:443 -v /opt/docker/nginx/conf.d/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /opt/docker/nginx/cert:/etc/nginx -d nginx
//查看容器是否正常运行
docker ps
//查看日志信息
docker logs nginx7.修改配置文件default.conf//若有多个网站可使用多个server
server {listen 80; #侦听80端口listen 443 ssl; #侦听443端口用于SSLserver_name tandk.com www.tandk.com; # 自己的域名# 注意证书文件名字和位置是从/etc/nginx/下开始算起的ssl_certificate 1_tandk.com_bundle.crt;ssl_certificate_key 2_tandk.com.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;ssl_prefer_server_ciphers on;client_max_body_size 1024m;location / {proxy_set_header HOST $host;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 这里写的是我的腾讯云内网地址,不知道为啥,不能用127.0.0.1...proxy_pass http://xx.xx.xx.xx:8090;}
}8.配置完成重启容器//停止nginx
docker stop nginx//启动容器
docker start nginx//查看是否启动成功
docker ps4 关于证书
免费证书可免费使用一年一个二级域名需使用一个证书 付费证书设置一个主域名证书所有二级域名都可以使用这个证书
5 关于数据盘挂载
由于系统盘空间有限服务器一般需要挂载数据盘但是有些情况下数据盘挂载之后服务器一旦重启会造成挂载丢失这个要注意检查
//查看磁盘信息
df -h
//进入系统根目录
cd /
//创建data文件夹用于挂载数据
mkdir data
//对数据盘进行分区/dev/vdb为未挂载的数据盘
fdisk /dev/vdb
//执行上边的命令之后会有分区引导逐步执行下边的命令
n p 1 w
//查看未挂载的数据盘
fdisk -l
//格式化挂载的数据盘/dev/vdbl为刚刚格式化的数据盘
mkfs.ext4 /dev/vdbl
//数据盘挂载
mount /dev/vdb1 /data
//修改配置保证服务器重启时挂载数据盘
vi /etc/fstab
//将下面的内容添加到配置文件的最后一行
/dev/vdb1 /data ext4 defaults 0 06 关于Docker默认路径
数据盘挂载之后需要将Docker默认镜像和容器存储位置设置到挂载的数据盘上1.查看docker默认目录
docker info默认路径为系统根目录/var/lib/docker
2.停止docker服务
systemctl stop docker3.创建docker默认目录
mkdir /data/docker -p4.根据需要迁移原docker默认目录下的文件
mv /var/lib/docker/* /data/docker5.配置docker默认目录
//一般情况下这个文件不存在直接新建
vi /etc/docker/daemon.json//内容如下
{data-root: /data/docker
}6.编辑docker配置文件
//打开并配置docker文件
vi /etc/systemd/system/multi-user.target.wants/docker.service//找到ExecStart部分并更新为以下内容
ExecStart/usr/bin/dockerd --graph/mnt/docker --storage-driveroverlay7.重启docker服务
systemctl daemon-reload
systemctl restart docker