我为图像主机运行以下配置。虽然一切正常但服务器2和3之间有很多流量,我认为不一定有。似乎服务器2正在从服务器3下载数据,同时服务器3也直接将图像提供给客户端......那么为什么服务器2从服务器3请求数据呢?
服务器3上50%的传出流量是服务器2上的传入流量。
如果有人请求嵌入了以下图像的php文件:http://example.com/upload/i/2014/12345.jpg它通过代理传递,apache处理php文件并重写服务器2上的nginx服务器处理的图像链接。
如果有人请求嵌入了以下图像的php文件:http://example.com/upload/i/2015/12345.jpg它通过代理传递,apache处理php文件并重写服务器3上的nginx服务器处理的图像链接但数据是被发送到服务器2也导致大量的传入流量涌入那里。我的问题是为什么会发生这种情况,我能以某种方式阻止这种情况吗?
如果删除apache重写规则并将其更改为服务器1上的nginx重写规则,也会发生同样的事情。
服务器1(nginx)
server {
server_name example.com;
location / {
proxy_pass http://1.2.3.4:21211;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host "example.com";
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
}
服务器2(apache / nginx)
<VirtualHost *:21211>
ServerName example.com
DocumentRoot /storage/example.com/public
<Directory /storage/example.com/public>
Options -Indexes +FollowSymLinks
</Directory>
<Directory "/upload">
RewriteEngine On
RewriteRule ^i/2014/([0-9]{5}\.jpg)$ http://fs1.example.com/2014/$1 [R]
RewriteRule ^i/2015/([0-9]{5}\.jpg)$ http://fs2.example.com/2015/$1 [R]
</Directory>
</VirtualHost>
-
server {
listen 80;
server_name fs1.example.com;
access_log off;
error_log /dev/null;
root /storage/fs1.example.com/upload;
}
服务器3(nginx)
server {
listen 80;
server_name fs2.example.com;
access_log off;
error_log /dev/null;
root /storage/fs2.example.com/upload;
}
答案 0 :(得分:0)