我有 3 个服务器:A、B、C。详情如下:
- 服务器 A:NGINX 服务器,URL:https://test1.example.com
- 服务器 B:托管 NodeJS Web 应用程序的 NGINX 服务器,URL:http://test2.example.com
- 服务器 C:托管 Django Web 应用程序的 Apache2 服务器,URL:http://test3.example.com
服务器 A(NGINX 服务器)是面向公众的前端服务器,使用 proxy_pass 充当负载平衡器。服务器 B(NGINX 服务器)有一个表单,并通过 POST 请求将其提交给服务器 C(使用 Apache2 的 UWSGI Django 服务器)。请求来自服务器 B,网址为:https://test1.example.com/register到服务器 C,但服务器 A 正在将其转换为 GET 请求。
所以我得到了 2 个请求日志,一个使用 POST,另一个使用 GET,路径相同为“/register”
该设置如图所示(图表位于帖子末尾)。
配置如下:
服务器 A:
server { listen 443 ssl http2; listen [::]: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/Loadbalancer configuration` # Testing the request` location / { proxy_pass http://test2.example.com; } location /register/{ proxy_pass http://test3.example.com; } }
服务器B:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; # Add index.php to the list if you are using PHP index index.html index.htm; server_name test2.example.com; location / { #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;
}
服务器C:
<VirtualHost *:80> ServerName 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 threads=8 WSGIProcessGroup cdac.in <Directory /var/www/test/webapp/> Options -Indexes Order deny,allow Allow from all Require all granted </Directory> LogLevel info # PROJECT_NAME is used to separate the log files of this application ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined
我哪里做错了。