Docker部署Nginx
拉取Nginx进行
docker pull nginx:latest
- 拉取完成查看:
docker images
准备工作
先在主机创建工作文件夹,为了挂载配置和静态文件的访问使用
- 启动一个容器
docker run -d --name nginx nginx
- 查看 容器 获取容器ID 或直接使用名字
docker container ls
- 在当前目录下创建目录:conf
mkdir conf
拷贝容器内 Nginx
默认配置文件到本地当前目录下的 conf
目录($PWD 当前全路径)
docker cp nginx:/etc/nginx/nginx.conf $PWD/conf
docker cp nginx:/etc/nginx/conf.d $PWD/conf
- 停止容器
docker container stop nginx
- 删除容器
docker container rm nginx
- 在当前目录下创建目录:html 放静态文件
mkdir html
部署容器
docker run -d -p 80:80 \
-p 443:443 \
--name nginxweb \
--link answer-server:answerserver \
-v /usr/local/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/docker/nginx/logs:/var/log/nginx \
nginx
-d # 表示在一直在后台运行容器
-p 80:80 # 对端口进行映射,将本地8081端口映射到容器内部的80端口
--name # 设置创建的容器名称
-v # 将本地目录(文件)挂载到容器指定目录;
--link answer-server:answerserver 这计划是指需要转向本机docker容器的别名
以下是基本https的访问配置
server {
listen 443 ssl;
server_name yuming.cpm; #你的申请过证书的域名
ssl_certificate /etc/nginx/conf.d/certs/xxxx.pem;
ssl_certificate_key /etc/nginx/conf.d/certs/xxxx.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html/admin;
index index.html index.htm;
}
location /admin {
alias /usr/share/nginx/html/admin;
index index.html index.htm;
}
location /s {
proxy_pass http://mallservertest:8080/;
}
}
反向代理配置格式
server {
listen 80;
server_name 192.168.17.129;
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080
}
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081
}
}