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
 }
}

参考链接:https://zhuanlan.zhihu.com/p/114603487

posted @ 2022-06-02 16:52  ericdee  阅读(83)  评论(0编辑  收藏  举报