Tôi đang có 3 Máy chủ: A, B, C. Chi tiết là:
- Máy chủ A: Máy chủ NGINX, URL: https://test1.example.com
- Máy chủ B: Máy chủ NGINX lưu trữ Ứng dụng web NodeJS, URL: http://test2.example.com
- Máy chủ C: Máy chủ Apache2 lưu trữ Ứng dụng web Django, URL: http://test3.example.com
Máy chủ A (Máy chủ NGINX) là máy chủ đối diện công khai phía trước hoạt động như bộ cân bằng tải bằng proxy_pass. Máy chủ B (Máy chủ NGINX) đang có một biểu mẫu và gửi nó thông qua yêu cầu POST tới Máy chủ C (Máy chủ UWSGI Django sử dụng Apache2). Yêu cầu đến từ Máy chủ B với url: https://test1.example.com/register sang Máy chủ C nhưng Máy chủ A đang chuyển đổi nó thành yêu cầu GET.
Vì vậy, tôi nhận được 2 nhật ký yêu cầu, một với POST và một với GET có cùng đường dẫn "/ register"
Thiết lập được mô tả trong hình (Sơ đồ ở cuối bài).
Cấu hình như sau:
Máy chủ A:
người phục vụ {
nghe 443 ssl http2;
nghe [::]: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;
# Cấu hình proxy/Loadbalancer`
# Kiểm tra yêu cầu`
địa điểm / {
proxy_pass http://test2.example.com;
}
vị trí /đăng ký/{
proxy_pass http://test3.example.com;
}
}
Máy chủ B:
người phục vụ {
nghe 80 default_server;
lắng nghe [::]:80 default_server;
gốc/var/www/html;
# Thêm index.php vào danh sách nếu bạn đang sử dụng PHP
chỉ mục index.html index.htm;
server_name test2.example.com;
địa điểm / {
#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;
}
Máy chủ C:
<Máy chủ ảo *:80>
Tên máy chủ test3.example.com
ServerAdmin [email protected]
Tài liệuRoot /var/www/test
Bí danh /static/ /var/www/test/webapp/static/
Bí danh /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 process=5 thread=8
WSGIProcessGroup cdac.in
<Thư mục /var/www/test/webapp/>
Tùy chọn -Chỉ mục
Lệnh từ chối, cho phép
cho phép từ tất cả
Yêu cầu tất cả cấp
</Thư mục>
Thông tin LogLevel
# PROJECT_NAME được sử dụng để phân tách các tệp nhật ký của ứng dụng này
ErrorLog /var/log/Apache2/error.log
CustomLog /var/log/Apache2/access.log kết hợp
Tôi làm sai ở đâu.