Запустите сервер Apache в Ubuntu [не докеризован] + WordPress в контейнере + SSL + AWS - PullRequest
0 голосов
/ 14 марта 2020

Учитывая мой домен mydomain.com, я хочу получить доступ к своему контейнеру WordPress из http://test.mydomain.com и https://test.mydomain.com.

Я приобрел домен mydomain.com по маршруту 53 и имею экземпляр EC2 AWS (IP: 123.123.123.123 и publi c IP: http://ec2-123-123-123-123.us-east-2.compute.amazonaws.com). На этом компьютере установлен Apache Сервер, а WordPress работает в контейнере. Моя цель - получить доступ к Wordpress через http(s)://test.mydomain.com.

Я буду go по частям в шагах:

  1. В Route 53 создайте поддомен test.mydomain.com с адресом 123.123.123.123.

  2. In /var/www/wp-site/ my docker-compose.yml (WordPress работает на порту 12345 в контейнере и сопоставляется с портом 80 в хосте) файл размещается с одним томом для БД и другим для сайта.

  3. В /etc/apache2/sites-available/ я создал файл 001-wp_site.conf:

<VirtualHost *:80>
        ProxyPreserveHost On
        ServerName test.mydomain.com
        ServerAlias *.test.mydomain.com

        ProxyPass "/" "http://127.0.0.1:12345/"
        ProxyPassReverse "/" "http://127.0.0.1:12345/"

        ErrorLog ${APACHE_LOG_DIR}/wp-site/error.log
        CustomLog ${APACHE_LOG_DIR}/wp-site/access.log combined
</VirtualHost>

ПЕРВАЯ ПРОБЛЕМА ЗДЕСЬ : Когда я получаю доступ к test.mydomain.com, он перенаправляет меня на http://ec2-123-123-123-123.us-east-2.compute.amazonaws.com, и я не знаю почему.

Я попытался включить SSL на сайте, используя certbot. Следуя инструкциям , я обновил файл 001-wp_site.conf следующим образом:
<VirtualHost *:80>
        ProxyPreserveHost On
        ServerName test.mydomain.com
        ServerAlias *.test.mydomain.com

        ProxyPass "/" "http://127.0.0.1:12345/"
        ProxyPassReverse "/" "http://127.0.0.1:12345/"

        ErrorLog ${APACHE_LOG_DIR}/wp-site/error.log
        CustomLog ${APACHE_LOG_DIR}/wp-site/access.log combined
</VirtualHost>

<VirtualHost *:443>
        SSLEngine On
        ServerName test.mydomain.com
        ServerAlias *.test.mydomain.com

        ProxyPass "/" "http://127.0.0.1:12345/"
        ProxyPassReverse "/" "http://127.0.0.1:12345/"

        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLCertificateFile /etc/letsencrypt/live/test.mydomain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/test.mydomain.com/privkey.pem

        ErrorLog ${APACHE_LOG_DIR}/wp-site/error.log
        CustomLog ${APACHE_LOG_DIR}/wp-site/access.log combined
</VirtualHost>
# 

ВТОРАЯ ПРОБЛЕМА : он не только перенаправляет меня на EC2 publi c IP, но HTTPS не работает.

Можете ли вы найти здесь проблему?

EXTRA Я относительно новичок в Docker, и у меня есть два вопросы:

  1. Должен ли я Apache Сервер работать в другом контейнере? Или бегать в том же контейнере, где расположены WP и DB? Или лучше не запускать его в контейнерах?

  2. Я понимаю, что созданные тома являются постоянными, но в случае, если я хочу перенести сайт на другую машину, будет достаточно просто скопируйте два тома на новый компьютер?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...