[Gluster-users] 503 Service unavailable load balancing with nginx
Gabriel-Adrian Samfira
samfiragabriel at gmail.com
Fri Jul 29 19:11:40 UTC 2011
Hello,
Don't know if this is the best way to report a bug, but here goes :).
I have 2 gluster servers running glusterfs-3.3beta1 on which I have
configured the Object Storage platform. The servers are on a private
network with no public IP's and i was trying to load balance the
object storage system using nginx. It worked great except that every
other request would be answered with a 503 error. Upon inspection of
/var/log/swift/proxy.error I found the following traceback:
Jul 29 13:28:53 storage05 proxy-server ERROR 500 Traceback (most
recent call last):#012 File
"/usr/local/lib/python2.6/dist-packages/swift-1.4_dev-py2.6.egg/swift/obj/server.py",
line 891, in __call__#012 res = getattr(self, req.method)(req)#012
File "/usr/local/lib/python2.6/dist-packages/swift-1.4_dev-py2.6.egg/swift/obj/server.py",
line 733, in GET#012 if file_obj.metadata[X-ETAG] in
request.if_none_match:#012NameError: global name 'X' is not
defined#012 From Object Server 127.0.0.1:6010
(txn:
tx2abf0954-1043-4976-a692-39da260d9271)
It seams that at line 733 in
/usr/local/lib/python2.6/dist-packages/swift-1.4_dev-py2.6.egg/swift/obj/server.py,
is trying to call X-ETAG instead of X_ETAG (i think its a typo).
Replacing the dash with an
underscore takes care of the error on my system. If its of any help,
here is the nginx config i used:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream backend-secure {
server 192.168.5.5:443;
server 192.168.5.6:443;
}
server {
listen 80;
client_max_body_size 5G;
location / {
proxy_pass https://backend-secure;
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-Proto https;
proxy_redirect off;
}
}
server {
listen 443 ssl;
client_max_body_size 5G;
ssl_certificate /etc/nginx/ssl/cert.crt;
ssl_certificate_key /etc/nginx/ssl/key.key;
location / {
proxy_pass https://backend-secure;
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-Proto https;
proxy_redirect off;
}
}
}
Best regards,
Gabriel
More information about the Gluster-users
mailing list