Hallo zusammen,
ich habe meine Apps über Subdomänen hinter einen Nginx Proxy und Docker (-compose) Services laufen.
Der Nginx Proxy Services im Frontend-Netzwerk nimmt die Anfragen entgegen und leitet sie dann an die Nginx oder Apache Service per proxy_pass zum Backend-Netzwerk weiter.
Im Backend-Netzwerk liegen dann die eigentlichen Apps Services (phpMyAdmin, Nextcloud, WebPage, MariaDB, ...). Dies funktioniert alles soweit.
Ich verwende eine Desktop-Applikation QMapShack Hier speichere ich über MSQL meine Tracks in ein Volume über den MariaDB Service.
Jedoch habe ich dies bisher noch nicht hinter dem Proxy gelegt. Im docker-compose habe ich daher angegeben:
ports: - my_server_ip:3306:3306
Dies funktioniert auch soweit. Für die weitere Harmonisierung will ich dies nun auch hinter dem Proxy legen.
Meine Proxy Nginx conf für den Webpage Service sieht so aus. Hier werden die Anfragen von Port 80 (443) für einem von mir definierten Port vom Frontend zum Backend an den Webpage Services per proxy_pass weitergeleitet.
server { listen 80; server_name domain.tld www.domain.tld; client_max_body_size 200M; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://my_web_service.frontend:my_port_to_web_service; ...
Ich dachte, nun ich baue diese Conf einfach so um, dass auf einen weiteren Port 3306 gelauscht wird und wenn etwas auf 3306 angekommt, dies an den MariaDB Service weitergeleitet wird. Anfragen an Port 80 sollen weiter an den Webpage Service geleitet werden. Jedoch frage ich mich nun, wie die Unterscheidung in der Conf für den proxy_pass zu gestalten ist?!
server { listen 80; listen 3306; server_name domain.tld www.domain.tld; client_max_body_size 200M; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://my_web_service.frontend:my_port_to_web_service; ?? proxy_pass http://my_mariadb_service.frontend:3306; ...
Bevor ich nun endlos rumprobiere, hier nun die Fragen in die Runde.
Ist dies das richtige Vorgehen?
Oder muss iche einen zweiten Nginx Server aufbauen?
server { listen 3306; ... }
Danke für eine kurze Hilfe.
kkarsten62
Moderiert von Thomas_Do:
Dieses Thema ist verschoben worden. Hat mit Containerbau nichts zu tun . Bitte beachte die als wichtig markierten Themen („Welche Themen gehören hier her und welche nicht?“)!