Я в настоящее время пытается построил мой собственный веб-сервер/службы и хотел создать что-то вроде этого:Nginx в качестве обратного прокси для Docker ВХосты
- Wordpress для основной «блог»
- Gitlab для моего Git репозиториев
- OwnCloud для моего хранения данных
Я использую Docker для получения миленький gitlab ход, который работает прекрасно, отображение в порт: 81 на моем веб-сервере с моим доменом.
Что меня раздражает бит, что Докер изображения всегда связаны с конкретным номер_порта и, таким образом, не очень легко запомнить, так что я хотел бы сделать что-то вроде этого:
git.mydomain.com for gitlab
mydomain.com (no subdomain) for my blog
owncloud.mydomain.com for owncloud
Что касается как я понял, мне нужен обратный прокси для этого, который я решил использовать для nginx. Поэтому я вещи, как это:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name mydomain.com;
location/{
proxy_pass http://localhost:84;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
server {
listen 80;
server_name git.mydomain.com;
location/{
proxy_pass http://localhost:81;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Таким образом, у меня есть git.mydomain.com и работает безупречно, но мой WordPress просто показывает мне пустой веб-страницы. Мой DNS настроен следующим образом:
Host Type MX Destination
* A IP
@ A IP
www CNAME @
Я просто слишком глуп или что здесь происходит?
Выполняете ли вы каждую службу в своем собственном контейнере? Какой контейнер контейнера может работать nginx? Помните, что локальный хост внутри контейнера не является локальным узлом вне контейнера. Либо соедините контейнеры, либо используйте env, чтобы найти IP-адреса или использовать общедоступный IP-адрес хоста. –
Это когда jwilder/nginx-proxy сохраняет ваше здравомыслие и дает вам все, что вам нужно. Прокси-контейнер прослушивает демон Docker и реконфигурирует себя каждый раз, когда на одном и том же хосте запускается другой контейнер веб-приложения. – Devvyn
Возможный дубликат [Присвоение vhosts портам Docker] (http://stackoverflow.com/questions/18497564/assigning-vhosts-to-docker-ports) – Devvyn