我正在使用逆向代理使用三个docker容器运行nginx。在这三个容器中,提取数据后,同一应用程序正在运行(数据提取应用程序),我需要下载文件。 下载文件时,内容从另一个容器中混合了。 如果我在谷歌浏览器中选择了1.pdf文件(用于提取),则反向代理会将流量重定向到一个容器 再次,如果我在firefox中选择了2.pdf文件(用于提取),则反向代理会将流量重定向到第二个容器。 提取文件后,如果我尝试从google chrome下载文件,则内容将从第二个容器下载,即2.pdf内容。 有时下载正确,但有时却混淆了数据。 在下载文件时,我的下载地址为http://1xx.1xx.3xx.xx/file_zip。 在所有三个容器中,我都有相同的下载网址。 我不知道可能是因为download_url混淆了内容。
worker_processes 1;
events { worker_connections 1024; }
http {
sendfile off;
gzip on;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 500;
gzip_disable "MSIE [1-6]\.";
gzip_types text/plain text/xml text/css
text/comma-separated-values
text/javascript
application/x-javascript
application/atom+xml;
client_max_body_size 10M;
# List of application servers
upstream mydomain.com {
server app1:80;
server app2:80;
server app3:80;
}
# Configuration for the server
server {
# Running port
listen 80;
server_name mydomain.com;
# Proxying the connections connections
location / {
proxy_pass http://1xx.133.xxx.xx;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
}
上面是我的nginx配置文件。 在nginx配置中,我有3个容器app1,app2,app3,其中应用程序在容器内的端口80上运行。 在浏览器中,如果我搜索mydomain.com,它将在提取1.pdf文件后重定向到第一个容器,那么我正尝试从浏览器下载文件,它将正确下载。 再次,如果我尝试访问该应用程序,nginx会将流量重定向到第二个容器,因为我没有提取过nginx配置中的任何负载均衡方法(默认情况下,它将采用循环方式),如果我尝试下载该文件,则提取2.pdf文件我将下载的内容保存为1.pdf文件(有时会正确下载)。
我的目标是使3个人同时访问该应用程序(使用数据科学的数据提取应用程序),并且可以提取文件并下载提取的内容。提取工作正常,但是当我尝试同时下载文件时,内容混合了。
在3个容器中运行的应用程序的下载URL与http://1xx.xxx.3xx.xx/file_zip相同。