努力保头发的打工人
努力保头发的打工人
发布于 2023-07-25 / 117 阅读 / 0 评论 / 0 点赞

docker部署nginx步骤

1. 下载nginx镜像

去docker的官方镜像仓库中心(https://hub.docker.com/)去获取目标镜像的下载命令。本文已nginx:stable-perl为例,使用docker pull nginx:stable-perl拉取镜像。

2.挂载准备

根据需要准备好挂载的文件夹:mkdir www logs conf,分别存放静态资源文件、日志、配置。除此之外还需要准备配置文件,如果没有现成模版,可以先运行一个容器,进入容器将默认的配置文件复制出来。操作如下:

  1. 运行容器:docker run -d -p 80:80 --name nginx nginx:stable-perl

  2. 复制配置文件:docker cp [容器id]:/etc/nginx/nginx.conf /chiangtaol/nginx/conf(目标目录)

  3. 修改配置文件,博客配置的server部分如下,http重定向到https。如果不需要https,将location部分替换listen 80 下面的重定向的代码即可。仅供参考:

    server {
            listen 80;
            charset     utf-8;
            server_name  blog.tntao.cn;
            
            return 301 https://blog.tntao.cn$request_uri;
    }
    
    server {
            listen 443 ssl;
    	    charset     utf-8;
            server_name blog.tntao.cn;
            
            # 这里的路径写容器内的路径
    	    ssl_certificate  /etc/nginx/conf.d/cert/blog.tntao.cn_bundle.crt;
            ssl_certificate_key  /etc/nginx/conf.d/cert/blog.tntao.cn.key;
            ssl_session_timeout 5m;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
    
            location / {
            # 将地址修改为你的真实使用地址和端口
    	    proxy_pass http://140.xxx.xxx.xxx:8090;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #nginx跟后端服务器连接超时时间(代理连接超时)
            proxy_connect_timeout      300;
            #后端服务器数据回传时间(代理发送超时)
            proxy_send_timeout         300;
            #连接成功后,后端服务器响应时间(代理接收超时)
            proxy_read_timeout         300;
            }
        }

3. 运行容器

docker run -d -p 80:80 -p 443:443 --name nginx -v /chiangtaol/nginx/www:/usr/share/nginx/html -v /chiangtaol/nginx/conf/conf.d/:/etc/nginx/conf.d -v/chiangtaol/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /chiangtaol/nginx/logs:/var/log/nginx nginx:stable-perl

有些时候需要使用https,所有需要映射一个443的端口。

4. 修改时区

docker cp /usr/share/zoneinfo/Asia/Shanghai [容器id或名称]:/etc/localtime。

修改成功后可以使用:docker exec -it nginx /bin/bash进入容器,使用date命令查看修改结果

[root@VM-0-10-centos logs]# docker exec -it nginx /bin/bash
root@81ab9d9b2ef8:/# date