
Допустим, у меня есть сервер с Nginx, и я настроил обратный прокси-сервер для определенных подпапок контейнера Docker. Ниже приведена моя настройка обратного прокси-сервера для nginx.
Фронтенд Nginx
#For Domain 1
server {
listen 80;
server_name domain1.com;
location / {
proxy_pass http://127.0.0.1:7000/domain1/;
proxy_redirect off;
proxy_set_header Host $host;
}
}
#For Domain 2
server {
listen 80;
server_name domain2.com;
location / {
proxy_pass http://127.0.0.1:7000/domain2/;
proxy_redirect off;
proxy_set_header Host $host;
}
}
Бэкэнд Nginx
Я настраиваю один docker и добавляю два сайта wordpress в подпапки. Как ниже
/var/www /root directory
/var/www/domain1 //domain 1 website
/var/www/domain2 //domain 2 website
Настройка файла docker nginx conf.d, как показано ниже
server {
listen 80;
index index.php index.html;
root /var/www;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
#domain1 setup <----------- my issues might be here
location /domain1 {
#try_files $uri $uri/ /domain1/index.php?$args;
root /var/www/;
}
#domain2 setup <----------- my issues might be here
location /domain2 {
#try_files $uri $uri/ /domain2/index.php?$args;
root /var/www/;
}
}
Как мне настроить в контейнере Docker файл конфигурации nginx, чтобы иметь возможность http://domain1.comиhttp://domain2.com
Я обнаружил, что большинство ответов используют отдельный контейнер Docker для каждого сайта. Но мне по какой-то причине нужно использовать один контейнер.
решение1
Если вы хотите, чтобы каждый сайт отвечал на разные имена хостов, то вам необходимо использовать отдельные server
блоки для каждого имени хоста в бэкэнде, как вы уже сделали на другом сервере nginx.