标签: docker

  • 优化 Docker 搭建 MySQL、WordPress、Nginx 和 Certbot 环境

    使用 Docker 搭建 MySQL、WordPress、Nginx 和 Certbot 环境》文中搭建的服务器在WordPress容器中启用了Apache,如果不想启用可以选择wordpress:php8.3-fpm这类的容器,Nginx的配置文件会有些变化,nginx.conf如下

        # HTTP 重定向服务器(统一处理)
        server {
            listen 80;
            server_name example.com www.example.com;
            location /.well-known/acme-challenge/ {
                root /var/www/certbot;
            }
            location / {
                return 301 https://$host$request_uri;
            }
        }
        # HTTPS 服务器配置
        server {
            listen 443 ssl http2;
            server_name example.com www.example.com;
            root /var/www/html;  # 主目录为 /var/www/html
            index index.php index.html index.htm;
            ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
            ssl_protocols TLSv1.2 TLSv1.3;
            ssl_ciphers HIGH:!aNULL:!MD5;
            add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
            add_header X-Frame-Options SAMEORIGIN;
            add_header X-Content-Type-Options nosniff;
            # 主目录中的 WordPress 文件
            location / {
                try_files $uri $uri/ /index.php?$query_string;
            }
            # PHP 请求转发
            location ~ \.php$ {
                fastcgi_pass wordpress_example:9000;  # PHP-FPM 容器名 fastcgi_index index.php;
    	    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
            # 错误页面配置
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                root /var/www/html;  # 错误页面路径
            }
        }
  • 使用 Docker 搭建 MySQL、WordPress、Nginx 和 Certbot 环境


    在现代网站架构中,使用容器化技术来部署应用程序已经成为一种常见的做法。Docker 是一个非常强大的工具,它允许我们将应用程序及其依赖打包到一个容器中,从而实现轻量级的虚拟化部署。本篇文章将展示如何使用 Docker 来搭建一个包含 MySQLWordPressNginxCertbot 环境的完整网站。

    我们将实现以下目标:

    • MySQL:用于存储 WordPress 数据。
    • WordPress:提供内容管理系统(CMS)功能。
    • Nginx:作为反向代理和 Web 服务器,负责处理 HTTPS 请求并提供 SSL 证书支持。
    • Certbot:用于自动申请和续期 SSL 证书,确保网站通过 HTTPS 安全访问。

    如果不想一步步学习,可以直接使用下面的一键部署,适合ubuntu server

    Github一键部署项目:Github/Ushiao/docker-compose-wordpress-nginx-mysql

    环境概述

    我们将使用 Docker 和 Docker Compose 来创建多个容器:

    • MySQL 容器:运行 MySQL 数据库。
    • WordPress 容器:运行 WordPress 内容管理系统。
    • Nginx 容器:作为反向代理和 Web 服务器。
    • Certbot 容器:自动获取和管理 SSL 证书。
    (更多…)