Puncte:0

Nginx/proxy nu funcționează corect

drapel de

Am dezinstalat recent apache2 pentru Nginx Încerc să ascult pe 88, 808 și 888 pentru site-urile mele și să redirecționez diferite subdomenii pentru fiecare (și un alt domeniu către alt server). problema este că Nginx oferă gateway proaste pentru toate cererile proxy și timeout pentru accesul direct IP.

conf. proxy: --> otherdomain.fr = eror 502 gateway defect

# HTTP
Server {
    # Ascultă pe ipv4
    asculta 80;
    #ascultă [::]:80;

    nume_server ~.*.otherdomain.fr;

    Locație / {
        proxy_set_header X-Real-IP $adresă_la distanță;
        proxy_set_header Gazdă $gazdă;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass „http://192.168.1.17”;
    }
}

Server{
    asculta 80;
    nume_server nextcloud.domain.me;
    Locație / {
        proxy_set_header Gazdă $gazdă;
        proxy_pass „http://127.0.0.1:888”;
        proxy_redirect dezactivat;
    }
}

Server{
    asculta 80;
    nume_server domeniu.me;
    Locație / {
        proxy_set_header Gazdă $gazdă;
        proxy_pass „http://127.0.0.1:808”;
        proxy_redirect dezactivat;
    }
}

ex pentru portul 88: --> ip:88 = timeout

(evident, este activat și utilizatorul nginx are acces la fișiere)

Server {
    # Ascultă pe ipv4
    asculta 88;
  
    Locație / {
        rădăcină /var/www/html/tests;
    }

}

În mod evident, fac ceva greșit, dar nu pot afla ce, dacă ai putea să-mi dai o mână de ajutor ar fi incredibil. Multumesc anticipat!

EDITAȚI | × :

netstat -tulpen | grep -E '8.?8'

tcp 0 0 127.0.0.1:10028 0.0.0.0:*
ASCULTĂ 0 28186 1929/master tcp 0 0 0.0.0.0:80 0.0.0.0:* ASCULTĂ 0 91603 8801/nginx: master tcp 0 0 127.0.0.1:12340
0.0.0.0:* ASCULTĂ 0 25868 734/dovecot tcp 0 0 127.0.0.1:631 0.0.0.0:*
ASCULTA 0 19881 497/cupsd tcp 0 0 0.0.0.0:88 0.0.0.0:* ASCULTĂ 0 75033 8801/nginx: master tcp 0 0 0.0.0.0:888
0.0.0.0:* ASCULTĂ 0 75032 8801/nginx: master tcp 0 0 0.0.0.0:443 0.0.0.0:*
ASCULTĂ 0 75030 8801/nginx: master tcp 0
0 127.0.0.1:10025 0.0.0.0:* ASCULTARE 0
28182 1929/master udp6 0 0 :::32885
:::* 113 21172
482/avahi-daemon: r"""

digijay avatar
drapel mx
Care este motivul pentru a diferenția porturile și apoi a le proxy? Care este rezultatul lui `netstat -tulpen | grep -E '8.?8?'`` ? Aveți directive „ascultați” pentru toate aceste porturi?
louis habert avatar
drapel de
1./ Sunt proxy și diferențiez porturile pentru că folosesc un server diferit pentru fiecare (808 este un server cherrypy de fapt nu rulează, otherdomain.fr este o altă mașină (apache2), 888 este nextcloud cu această instanță de nginx (și php8.0) și folosesc doar 88 în scopuri de testare, așa că nu folosesc un subdomeniu pentru el) 2./ vezi EDIT 3./ da da
louis habert avatar
drapel de
EDIT: aș putea elimina portul pentru nextcloud și poate portul 88
djdomi avatar
drapel za
nginx necesită fie o locație, un nume de server sau un ip în numele serverului. altfel nu va servi conținutul, deoarece nu știe ce să facă cu el. Mai mult, din ce motiv utilizați `~.*.` în numele serverului?
drapel us
Care este conținutul lui nginx `error.log`?
louis habert avatar
drapel de
@djdomi expresia regex este făcută pentru a redirecționa fiecare subdomeniu al otherdomain.fr la acest ip
louis habert avatar
drapel de
@TeroKilkanen Pentru 3 cereri: altdomeniu.fr domeniu.me:88 nextcloud.domain.me Eu iau : `2021/11/05 10:05:52 [eroare] 22452#22452: *1 connect() a eșuat (113: Nicio rută către gazdă) în timpul conectării la amonte, client: 172.70.90.59, server: ~.*.otherdomain .fr, cerere: „GET / HTTP/1.1”, în amonte$ 2021/11/05 10:05:55 [eroare] 22452#22452: *3 connect() a eșuat (113: Nicio rută către gazdă) în timpul conectării la amonte, client: 172.70.162.73, server: ~.*.otherdomain. fr, cerere: „GET /favicon.ico HTTP/1.$`
Puncte:1
drapel us

Nu aveți nevoie de ghilimele în jurul URL-ului de destinație al proxy_pass.

Problema principală este nume_server ~.*.otherdomain.fr și faptul că utilizați proxy_set_header Gazdă $gazdă.

În acest caz, pare expresia ta obișnuită pentru numele serverului este invalid și este luat ca șir. Acel șir apare atunci în $gazdă variabil.

Ar trebui sa incerci

nume_server *.otherdomain.fr;

in schimb. Dacă asta nu funcționează, folosește

proxy_set_header Gazdă $http_host;

Care transmite antetul HTTP Host mai departe în loc de conținutul lui $gazdă variabil.

djdomi avatar
drapel za
Am ghicit corect că regrx funcționează, dar este în conflict cu restul ;) Mulțumesc pentru clarificarea gândurilor mele

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.