Am 3 aplicații diferite implementate pe același server. Fiecare pe porturi diferite
- O aplicație API java care rulează pe portul 8080. director (/home/api/)
- A doua aplicație web nextjs care rulează pe portul 3000. director (/home/web)
- A treia aplicație de panou de administrare vuejs pe portul implicit 80 implementată în subdirector (/var/www/html/admin)
Acesta este un fișier de configurare apache test.conf
ServerName www.test.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinat
# Configurați proxy invers pentru toate serverele
ProxyPreserveHost activat
ProxyPass /admin http://localhost/admin
ProxyPassReverse /admin http://localhost/admin
ProxyPass /api http://localhost:8080/api
ProxyPassReverse /api http://localhost/api
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost/
API-ul funcționează bine la http://test.com/api URL.
Site-ul funcționează bine și la http://test.com URL.
Problema apare când accesez http://test.com/admin URL.
Afișează următoarea eroare în browser: -
Browserul dvs. a trimis o solicitare pe care acest server nu a putut-o înțelege. Dimensiunea unui câmp de antet de solicitare depășește limita de server.
cu codul de stare 400 Solicitare greșită și Dacă elimin admin panoul din proxy invers și creați un alt fișier vhost cu o configurație simplă ca mai jos: -
Acesta este un alt fișier de configurare apache vhost test-admin.conf
ServerName www.test.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinat
<Director /var/www/html/admin>
Opțiuni Indexuri FollowSymLinks
AllowOverride All
Solicitați toate acordate
Comanda permite, refuza
Permite de la toți
</Director>
apoi altă adresă URL nu mai funcționează 404 Nu a fost gasit eroare.
Notă:- www.test.com este doar pentru a reprezenta numele real de domeniu sau IP.