ฉันมี 3 เซิร์ฟเวอร์: เอ บี ซี. รายละเอียดคือ:
- เซิร์ฟเวอร์ A: เซิร์ฟเวอร์ NGINX, URL: https://test1.example.com
- เซิร์ฟเวอร์ B: เซิร์ฟเวอร์ NGINX ที่โฮสต์แอปพลิเคชันเว็บ NodeJS, URL: http://test2.example.com
- เซิร์ฟเวอร์ C: เซิร์ฟเวอร์ Apache2 ที่โฮสต์ Django Web Application, URL: http://test3.example.com
เซิร์ฟเวอร์ A (เซิร์ฟเวอร์ NGINX) หันหน้าเข้าหาเซิร์ฟเวอร์สาธารณะที่ทำหน้าที่เป็นโหลดบาลานเซอร์โดยใช้ proxy_pass เซิร์ฟเวอร์ B (เซิร์ฟเวอร์ NGINX) กำลังมีแบบฟอร์มและส่งคำขอผ่าน POST ไปยังเซิร์ฟเวอร์ C (เซิร์ฟเวอร์ UWSGI Django โดยใช้ Apache2) คำขอมาจากเซิร์ฟเวอร์ B พร้อม url: https://test1.example.com/register เป็นเซิร์ฟเวอร์ C แต่เซิร์ฟเวอร์ A กำลังแปลงเป็นคำขอ GET
ดังนั้นฉันจึงได้รับ 2 คำขอบันทึกหนึ่งด้วย POST และอีกอันด้วย GET ด้วยเส้นทางเดียวกัน "/ ลงทะเบียน"
การตั้งค่าจะแสดงในรูป (ไดอะแกรมอยู่ที่ส่วนท้ายของโพสต์)
การกำหนดค่ามีดังนี้:
เซิร์ฟเวอร์ A:
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
server_name test1.example.com;
ssl_certificate /etc/ssl/test1/test1.example.com.crt;
ssl_certificate_key /etc/ssl/test1/test1.example.com.key;
# การกำหนดค่าพร็อกซี/ตัวโหลดบาลานซ์
#ทดสอบคำขอ'
ที่ตั้ง / {
proxy_pass http://test2.example.com;
}
สถานที่ /ลงทะเบียน/{
proxy_pass http://test3.example.com;
}
}
เซิร์ฟเวอร์ B:
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ฟัง [::]:80 default_server;
รูท /var/www/html;
# เพิ่ม index.php ในรายการหากคุณใช้ PHP
ดัชนี index.html index.htm;
server_name test2.example.com;
ที่ตั้ง / {
#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;
}
เซิร์ฟเวอร์ ค:
<โฮสต์เสมือน *:80>
ชื่อเซิร์ฟเวอร์ test3.example.com
ผู้ดูแลระบบเซิร์ฟเวอร์ [email protected]
DocumentRoot /var/www/ทดสอบ
นามแฝง /static/ /var/www/test/webapp/static/
นามแฝง /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 กระบวนการ=5 เธรด=8
WSGIProcessGroup cdac.in
<ไดเรกทอรี /var/www/test/webapp/>
ตัวเลือก -ดัชนี
คำสั่งปฏิเสธอนุญาต
อนุญาตจากทั้งหมด
ต้องได้รับอนุญาตทั้งหมด
</ไดเรกทอรี>
ข้อมูล LogLevel
# PROJECT_NAME ใช้เพื่อแยกไฟล์บันทึกของแอปพลิเคชันนี้
ErrorLog /var/log/apache2/error.log
รวม CustomLog /var/log/apache2/access.log
ฉันจะไปผิดที่ไหน