Am două aplicații.
- Aplicația Laravel - Fiind doar un site web dinamic. Nu are
date-cunoaștere. Toate datele sunt preluate din a doua aplicație
folosind cereri AJAX. Merge mai departe
127.0.0.1:8000
.
- Aplicarea ruginii - O aplicație web care conține toată afacerea
logica si accesul la date. Merge mai departe
127.0.0.1:8080
.
Ambele aplicații trebuie să fie accesibile de la adresa URL exemplu.com
.
Pentru aceasta vreau să folosesc Nginx Reverse Proxy. Pot deja să redirecționez toate solicitările către aplicația mea Laravel.
evenimente {}
http {
Server {
asculta 80;
# Site-ul web
Locație / {
proxy_pass http://127.0.0.1:8000;
}
}
}
În timp ce aplicația Laravel funcționează, am nevoie de următoarea configurație Nginx:
- Pagini specifice cum ar fi
/știri
, /
, /despre
,/a lua legatura
,... ar trebui redirecționat către 127.0.0.1:8000
.
- Notă: Paginile de mai sus pot conține parametri GET, cum ar fi de ex
/news?article=abc
.
- TOATE celelalte solicitări trebuie redirecționate către
127.0.0.1:8080
.
- Notă: 127.0.0.1:8080 poate conține adesea un subdomeniu. Dar acest subdomeniu trebuie să acționeze ca un wildcard și este necunoscut în momentul configurării. Exemplu:
bussiness1.example.com
, bussiness2.example.com
, businnesX.example.com
,...
Subdomeniul returnează o pagină personalizată pentru care un număr nelimitat de companii o pot solicita pe example.com.
Cum as realiza aceasta configuratie? Ma gandeam la asa ceva?
#PSEUDO
evenimente {}
http {
Server {
asculta 80;
# Site-ul web
Locație / {
proxy_pass http://127.0.0.1:8000;
}
locație /știri {
proxy_pass http://127.0.0.1:8000;
}
locație /aproximativ {
proxy_pass http://127.0.0.1:8000;
}
# Aplicație
Locație * {
proxy_pass http://127.0.0.1:8080;
}
}
}
Editați cu privire la răspunsul lui Tero:
Am nevoie de un fel de wildcard pentru subdomenii.
# Aplicație captivantă
Locație / {
proxy_pass http://$subdomain.$application;
}
abc.example.com trebuie să acceseze abc.127.0.0.1:8080
def.example.com trebuie să acceseze def.127.0.0.1:8080
...
Știu că un IP nu poate avea un subdomeniu, dar nu vă faceți griji pentru asta. Am rezolvat asta cu gazde virtuale.
Editare 2 - Treceți subdomeniul solicitării către proxy_pass:
Server {
asculta 80;
nume_server *.website.com;
nume_server ~^(?<subdomeniu>.+)\.website\.com$;
Locație / {
proxy_pass http://$subdomain.vhost.local:8080;
}
}
Este acesta modul corect de a redirecționa dynamicxxx.website.com către dynamicxxx.vhost.local:8080?