01-个人博客搭建

nobility 发布于 2020-08-17 2689 次阅读


个人博客搭建

备份 Nginx 配置文件

将 Nginx 配置文件进行备份。非必须步骤,如果你已经知道 Nginx 配置文件怎么写。

# 先运行 nginx 容器,用于复制配置文件到宿主机
docker run -d --name nginx nginx
# 宿主机上创建用于映射配置文件的目录
mkdir /etc/nginx 
# 从容器中拷贝配置文件到宿主机
docker cp nginx:/etc/nginx/conf.d /etc/nginx
# 为文件赋予最大权限,否则docker没有权限修改
chmod 777 /etc/nginx/conf.d/default.conf
# 删除刚才的容器
docker rm -f nginx

编写 docker-compose 文件

在当前目录下创建 docker-compose.yml 并复制下面的配置。

# 指定docker-compose.yml的版本
version: "3.1"
services:
  wordpress:
    image: wordpress
    restart: always
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes: 
      # 映射 wordpress 文件到宿主机
      - /var/www/html:/var/www/html
    networks:
      - net1
  mysql:
    image: mariadb:10.10
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    volumes:
    # 映射 mysql 文件到宿主机
      - mysql:/var/lib/mysql
    networks:
      - net1
  nginx: 
    image: nginx
    restart: always
    ports:
      # 暴露 http 端口
      - "80:80"
      # 暴露 https 端口
      - "443:443"
    volumes:
      # 映射 nginx 配置文件目录到宿主机
      - /etc/nginx/conf.d:/etc/nginx/conf.d
      # 映射日志文件到宿主机
      - /var/log/nginx:/var/log/nginx  
    networks:
      - net1
volumes:
  mysql:
  
networks:
  net1:
    # 设置为桥接网络
    driver: bridge

安装 Docker Compose 并启动容器

安装 Docker Compose 并启动服务。

# 安装 Docker Compose
yum install docker-compose
# 执行 Docker Compose 命令,后台启动 Docker 容器
docker-compose up -d

修改 Nginx 配置文件

查看 Nginx 要反向代理的 WordPress 容器 IP 地址。

# 查看 Docker 的网络详细信息,找到 WordPress 的IP地址
docker network inspect root_net1

修改 Nginx 映射到宿主机的配置文件,打开 /etc/nginx/conf.d/default.conf 文件,并复制下面的配置。

server {
    # 监听 http 端口
    listen 80;
    # 服务器域名(需要修改)
    server_name nobility.work;
    # 开启 Nginx 访问日志
    # access_log  /var/log/nginx/host.access.log  main;
    # 资源路径
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 填写要代理的 IP,这里填写 WordPress 的 IP(需要修改)
        proxy_pass http://172.18.0.2;
        # 客户端上传 body 最大值
        client_max_body_size 256M;
    }
    # 错误状态码对应的 path
    error_page   500 502 503 504  /50x.html;
    # 错误页配置
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

重新加载 Nginx 配置文件

进入 Nginx 容器重新加载配置文件。

# 进入 Nginx 容器
docker exec -it root_nginx_1 /bin/bash
# 重新加载 Nginx 配置文件
nginx -s reload

开启防火墙并放行端口

可选步骤,如果遇到网站无法访问的情况,则需要检查防火墙是否开启。

# 检查防火墙是否开启
systemctl status firewalld
# 如果没有开启,需要开启防火墙
systemctl start firewalld
# 放行 80 端口
firewall-cmd --zone=public --add-port=80/tcp
# 放行 443 端口
firewall-cmd --zone=public --add-port=443/tcp

卸载 Docker 容器

期间,如果想停止服务,重新部署时,需要执行下面命令。

# 执行 Docker Compose 命令,停止正在执行的容器,如果想同时删除数据卷,则需要使用 -v 参数
docker-compose down
# 重启 Docker 服务
systemctl restart docker
此作者没有提供个人介绍
最后更新于 2020-08-17