Am 3 servere: A, B, C. Detaliile sunt:
- Server A: Server NGINX, URL: https://test1.example.com
- Server B: serverul NGINX care găzduiește aplicația web NodeJS, URL: http://test2.example.com
- Server C: Server Apache2 care găzduiește aplicația web Django, URL: http://test3.example.com
Serverul A(NGINX Server) este un server orientat către public, care acționează ca echilibrator de încărcare folosind proxy_pass. Serverul B(NGINX Server) are un formular și îl trimite prin cerere POST către Server C (UWSGI Django Server folosind Apache2). Solicitarea este de la serverul B cu url: https://test1.example.com/register la Server C, dar Server A îl convertește în cerere GET.
Așa că primesc 2 jurnal de cereri, unul cu POST și altul cu GET cu aceeași cale "/register"
Configurația este prezentată în figură (Diagrama este la sfârșitul postării).
Configurația este după cum urmează:
Server A:
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
nume_server test1.example.com;
certificat_ssl /etc/ssl/test1/test1.example.com.crt;
cheie_certificat_ssl /etc/ssl/test1/test1.example.com.key;
# Configurație Proxy/Loadbalancer`
# Testarea cererii`
Locație / {
proxy_pass http://test2.example.com;
}
locație /registru/{
proxy_pass http://test3.example.com;
}
}
Server B:
Server {
asculta 80 default_server;
asculta [::]:80 default_server;
rădăcină /var/www/html;
# Adăugați index.php la listă dacă utilizați PHP
index index.html index.htm;
nume_server test2.example.com;
Locație / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.html;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
Server C:
<VirtualHost *:80>
ServerNume test3.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/test
Alias /static/ /var/www/test/webapp/static/
Alias /media/ /var/www/test/media/
WSGIScriptAlias / /var/www/test/webapp/wsgi.py
WSGIDaemonProcess cdac.in python-path=/var/www/test \
python-home=/var/www/test/venv processes=5 fire=8
WSGIProcessGroup cdac.in
<Director /var/www/test/webapp/>
Opțiuni -Indici
Ordin refuza, permite
Permite de la toți
Solicitați toate acordate
</Director>
Informații LogLevel
# PROJECT_NAME este folosit pentru a separa fișierele jurnal ale acestei aplicații
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combinat
Unde gresesc.