Учитывая мой домен 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 по частям в шагах:
В Route 53 создайте поддомен test.mydomain.com
с адресом 123.123.123.123
.
In /var/www/wp-site/
my docker-compose.yml
(WordPress работает на порту 12345
в контейнере и сопоставляется с портом 80
в хосте) файл размещается с одним томом для БД и другим для сайта.
В /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, и у меня есть два вопросы:
Должен ли я Apache Сервер работать в другом контейнере? Или бегать в том же контейнере, где расположены WP и DB? Или лучше не запускать его в контейнерах?
Я понимаю, что созданные тома являются постоянными, но в случае, если я хочу перенести сайт на другую машину, будет достаточно просто скопируйте два тома на новый компьютер?