ubuntuusers.de

Zwei proxy_pass für zwei Ports zu zwei Docker Services?

Status: Gelöst | Ubuntu-Version: 20.04 (Focal Fossa)
Antworten |

kkarsten62

Anmeldungsdatum:
30. November 2009

Beiträge: 61

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?“)!

kkarsten62

(Themenstarter)

Anmeldungsdatum:
30. November 2009

Beiträge: 61

Ich habe das Thema damit gelöst, dass ich mit iptables den Zugriff auf die DB einschränke und SSL/TLS verwende.

Das Thema kann damit geschlossen werden.

Antworten |