Docker - dwa nginx |
Docker - dwa nginx |
3.07.2020, 12:01:05
Post
#1
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6307 Dołączył: 27.12.2004 |
Cześć,
ma dwie aplikacje, powiedzmy app1, app2 obie aplikacje mają swoje środowiska docker startowane przez docker-compose. Każda ma swój własny php oraz nginx. Ponieważ app1 musi slać żądania do app2, wiec w docker-compose w app2 dodałem Kod networks: default: external: name: app1_default Dzięki czemu app1 widzi kontener nginx z app2. I generalnie nie byłoby problemu gdyby nie fakt, że robiąc żądanie do app2 nawet z zewntarz a nie app1 to od czasu do czasu mam 404 NOT FOUND. Gdy wyłącze app1 to błąd ten się nie pojawia. Problem również znika gdy wywale exteneral network z docker-compose w app2 Ewidentnie więc nginx z app1 przechwytuje żądania które teoretycznie powinien łapać nginx z app2 Każdy konfig strony ma swoj właśny server_name więc teoretycznie powinien łapać tylko swoje a niestety łapie też nie swoje. Jakieś porady? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
3.07.2020, 19:05:01
Post
#2
|
|
Grupa: Zarejestrowani Postów: 515 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) |
|
|
|
5.07.2020, 18:27:04
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6307 Dołączył: 27.12.2004 |
Nie bardzo rozumiem gdzie mam to wsadzic?
Kazda z aplikacja ma swoj oddzielny docker-compoer.yml. Konterer php z app1 ma widziec konterer nginx z app2 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.07.2020, 19:48:48
Post
#4
|
|
Grupa: Zarejestrowani Postów: 515 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) |
sorki, umknęło mi że masz 2 compose. W jednym compose działałoby to w ten sposób jak napisałem, w 2 oddzielnych od ręki się nie wypowiem, musiałbym się wdrożyć
|
|
|
7.07.2020, 08:55:54
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6307 Dołączył: 27.12.2004 |
Z jednym compose nie mialbym w ogole tego problemu
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
7.07.2020, 09:04:28
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 373 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
-------------------- |
|
|
7.07.2020, 09:26:04
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6307 Dołączył: 27.12.2004 |
@viking to wlasnie teraz mam. Tylko sek w tym, ze gdy te dwie apllikacje sa wtej samej sieci, to nginx z pierwszej od czasu do czasu lapie requesty z drugiej co skutkuje rzuceniem NOT FOUND.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
7.07.2020, 19:37:09
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Czy obie apki są publiczne? Generalnie wystawiłnbym porty dla obu np. 8080 i 8081 i stukał po portach.
|
|
|
8.07.2020, 06:35:40
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6307 Dołączył: 27.12.2004 |
Obie sa publiczne
stukam po roznych portach -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
8.07.2020, 17:41:42
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
No to stukaj zew_ip:port1 zew_ip:por2 i po problemie. Nie łąćz tych apek w jednej sieci.
|
|
|
8.07.2020, 21:47:04
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) |
Opcją jest też dodanie nginxa jako proxy przed tymi obiema apkami.
-------------------- |
|
|
9.07.2020, 03:32:29
Post
#12
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Sprawdź czy takie coś zadziała:
Kod services: app1: extra_hosts: - "app2host:host.docker.internal" To powinno dodać do pliku hosts w kontenerze app1 wpis: Kod <twój adres ip> app2host Teraz powinieneś byś w stanie wysłać request to app2 bez kombinowania z siecią. Kilka uwag: - nie wiem czy host.docker.internal zostanie przetłumaczone na adres ip hosta w takiej postaci. Ja korzystałem z tego wewnątrz kontenera, nigdy z poziomu docker-compose.yml - będzie musiał pamiętać o porcie (ale podejrzewam, że i tak go używasz) -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
9.07.2020, 09:04:35
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6307 Dołączył: 27.12.2004 |
Cytat No to stukaj zew_ip:port1 zew_ip:por2 i po problemie. Nie łąćz tych apek w jednej sieci. To nei dziala. Niewazne jak sie odwoluje do appek, czy host, czy IP, czy nawet po nazwie z kontenera wewnatrz appek to i tak srednio co drugi call leci lapanka z innego nginx. Oczywiscie porty nadal inne. Nawet godzinke spedzilem z szefem, ekspertem od nginx, to sie zalamal na koniec i stwierdzil ze nie kuma o co chodzi. Cytat Teraz powinieneś byś w stanie wysłać request to app2 bez kombinowania z siecią. Ja to wiem, ze jak odlacze sieci to to dziala. I wiem ze odpowiedni wpis w etc/hosts zalatwi sprawe. ALe to jest tylko tymczasowe obejscie problemu. Najbardziej mnie zastanawia jakim cudem oddzielny nginx lapie moje requesty. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
9.07.2020, 09:24:32
Post
#14
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Cytat Najbardziej mnie zastanawia jakim cudem oddzielny nginx lapie moje requesty. Może coś jest skaszanione w konfiguracji nginx? Jakaś reguła, która przechwytuje wszystkie nieobsłużone requesty? Albo w apce masz jakiś ukryty błąd, który skutkuje 404. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
10.07.2020, 17:09:10
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6307 Dołączył: 27.12.2004 |
Nie ma, sprawdzilem wszystkie virtual hosts, wywalilem wszystkie default ktore nginx instaluje samodzielnie. Nic. Przegladalem to razem z szefem linia po linii i tez nic. Normalnie magia :/
@batman, sprawdzilem jeszcze twoje hosty ale mam problemy pewnie dlatego ze chyba nie rozumiem ten zapis. Dalem tak: Kod services: php: .... tu masa konfiguracje dla kontenera php..... extra_hosts: - "hubsync_nginx:host.docker.internal" I dostaje blad: " Cannot create container for service php: b'invalid IP address in add-host: "host.docker.internal"'" -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
10.07.2020, 18:18:23
Post
#16
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Cytat " Cannot create container for service php: b'invalid IP address in add-host: "host.docker.internal"'" Tak jak się obawiałem, docker compose nie wie co to jest host.docker.internal Rzadko z tego korzystałem, zawsze z poziomu kontenera. Liczyłem, że compose będzie w stanie przetłumaczyć to na standardowy adres ip. Cóż, shit happens. Na chwilę obecną nie mam żadnego innego pomysłu. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
12.07.2020, 00:43:23
Post
#17
|
|
Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) |
Problem jest banalny, Twoja konfiguracja nginxa jest błędna - łączy się z tym samym FPMem (fpm:9000).
Rozwiązanie może wyglądać tak (dodanie links i podmiane w ngixie):
i entrypoint do podmiany konfiguracji w nginxie (dzięki temu ta sama konfiguracja może lecieć na proda):
Gdybyś potrzebował obrazu nginx + php 7.4 + cron + nodejs + supervisior to napisz priv to podrzucę Ci moje repo obrazu |
|
|
13.07.2020, 10:58:02
Post
#18
|
|
Grupa: Moderatorzy Postów: 36 519 Pomógł: 6307 Dołączył: 27.12.2004 |
Ustawienie innych wewnetrznych portow w app2 dla php i nginx rozwiazalo sprawe.
Dzieki @Pyton za sugestie na pw oraz @aras za zwrocenie na to uwagi -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
Wersja Lo-Fi | Aktualny czas: 22.09.2024 - 13:47 |