
Nehmen wir an, ich habe ein Droplet mit Nginx und richte einen Reverse-Proxy für bestimmte Unterordner des Docker-Containers ein. Unten sehen Sie mein Reverse-Proxy-Setup für Nginx
Frontend 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;
}
}
Backend Nginx
Ich richte einen einzelnen Docker ein und füge zwei WordPress-Websites in Unterordnern hinzu. Wie unten
/var/www /root directory
/var/www/domain1 //domain 1 website
/var/www/domain2 //domain 2 website
Docker Nginx conf.d Datei-Setup wie unten
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/;
}
}
Wie kann ich im Docker-Container eine Nginx-Conf-Datei einrichten, um http://domain1.comUndhttp://domain2.com
Ich habe festgestellt, dass die meisten Antworten für jede Site einen separaten Docker-Container verwenden. Aber ich muss aus irgendeinem Grund einen einzelnen Container verwenden.
Antwort1
Wenn jede Site auf unterschiedliche Hostnamen antworten soll, müssen Sie server
im Backend für jeden Hostnamen separate Blöcke verwenden, wie Sie es bereits auf dem anderen Nginx-Server getan haben.