场景描述如下: nginx做前端代理,代理两台web server,需要上传文件,一个文件只能上传到一台服务器上,如何处理呢? 解决问题: 可以使用nginx负载均衡中的backup选项,将其中一台服务器设置为备份机,在正常情况下,文件上传下载都会落到非备份机上面,如果非备份机出现问题,才能启用备份机。 另外还需要使用rsync服务,定时同步两台服务器的上传文件路径,以保证在出现问题时,备份机可以马上顶上。 相关nginx配置如下: user web; worker_processes 4; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #gzip on; upstream backend_for_upload{ server 10.10.20.187:8080; server 10.10.20.188:8080 backup; } server { listen 8080; server_name it.net.cn; charset utf-8; location /upload/ { proxy_pass http://backend_for_upload/upload/; 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; } } } (责任编辑:IT) |