Adding X-server to headers to figure out request pinning.

This commit is contained in:
Samuel Clay 2013-03-18 11:32:24 -07:00
parent 5847f8d05f
commit d283294bcc
6 changed files with 55 additions and 23 deletions

View file

@ -158,6 +158,12 @@ class SimpsonsMiddleware:
response["X-%s" % source] = quote[1]
return response
class ServerHostnameMiddleware:
def process_response(self, request, response):
response["X-server"] = settings.SERVER_NAME
return response
class TimingMiddleware:
def process_request(self, request):

View file

@ -6,7 +6,7 @@ global
ca-base /srv/newsblur/config/certificates
crt-base /srv/newsblur/config/certificates
log 127.0.0.1 local0 notice
log 127.0.0.1 local1 info
# log 127.0.0.1 local1 info
defaults
log global
@ -26,7 +26,8 @@ defaults
errorfile 502 /srv/newsblur/templates/502.http
errorfile 503 /srv/newsblur/templates/502.http
errorfile 504 /srv/newsblur/templates/502.http
cookie SERVERID insert indirect
frontend public
bind :80
bind :443 ssl crt newsblur.pem
@ -57,22 +58,23 @@ frontend public
backend node
balance roundrobin
server nodedebug 127.0.0.1:8888 check inter 500ms
stick-table type ip size 1m expire 60m store gpc0,conn_rate(30s)
server nodedebug 127.0.0.1:8888 check inter 2000ms cookie nodedebug
backend nginx
balance roundrobin
server nginxdebug 127.0.0.1:81 check inter 500ms
server nginxdebug 127.0.0.1:81 check inter 2000ms cookie nginxdebug
backend gunicorn
balance roundrobin
# server gunicorndebug 127.0.0.1:8000 check inter 500ms
server gunicorn14 198.211.109.155:8000 check inter 2000ms
server gunicorndebug 127.0.0.1:8000 check inter 2000ms cookie gunicorndebug
backend maintenance
option httpchk HEAD /maintenance HTTP/1.1\r\nHost:\ www
http-check expect status 404
http-check send-state
server nginxdebug 127.0.0.1:81 check inter 500ms
server nginx10 198.211.109.197:81 check inter 2000ms
frontend stats
bind :1936 ssl crt newsblur.pem
@ -84,4 +86,4 @@ backend stats
stats realm Haproxy\ Statistics
stats uri /
stats auth sclay:password
stats refresh 15s
stats refresh 15s

View file

@ -57,20 +57,21 @@ frontend public
backend node
balance roundrobin
stick-table type ip size 1m expire 60m store gpc0,conn_rate(30s)
# server node10 198.211.109.197:8888 check inter 2000ms weight 0
server node11 198.211.110.131:8888 check inter 2000ms
# server node12 198.211.110.230:8888 check inter 2000ms
# server node13 192.34.61.227:8888 check inter 2000ms
# server node14 198.211.109.155:8888 check inter 2000ms
# server node15 198.211.107.87:8888 check inter 2000ms
# server node16 198.211.105.155:8888 check inter 2000ms
# server node17 198.211.104.133:8888 check inter 2000ms
# server node18 198.211.103.214:8888 check inter 2000ms
# server node19 198.211.106.22:8888 check inter 2000ms
# server node20 198.211.110.189:8888 check inter 2000ms
# server node21 198.211.106.215:8888 check inter 2000ms
# server node22 192.81.209.42:8888 check inter 2000ms
# server node23 198.211.102.245:8888 check inter 2000ms
server node12 198.211.110.230:8888 check inter 2000ms
server node13 192.34.61.227:8888 check inter 2000ms
server node14 198.211.109.155:8888 check inter 2000ms
server node15 198.211.107.87:8888 check inter 2000ms
server node16 198.211.105.155:8888 check inter 2000ms
server node17 198.211.104.133:8888 check inter 2000ms
server node18 198.211.103.214:8888 check inter 2000ms
server node19 198.211.106.22:8888 check inter 2000ms
server node20 198.211.110.189:8888 check inter 2000ms
server node21 198.211.106.215:8888 check inter 2000ms
server node22 192.81.209.42:8888 check inter 2000ms
server node23 198.211.102.245:8888 check inter 2000ms
backend nginx
balance roundrobin
@ -88,6 +89,11 @@ backend nginx
server nginx21 198.211.106.215:80 check inter 2000ms
server nginx22 192.81.209.42:80 check inter 2000ms
server nginx23 198.211.102.245:80 check inter 2000ms
server nginx24 198.211.109.236:80 check inter 2000ms
server nginx25 198.211.113.54:80 check inter 2000ms
server nginx26 198.211.113.206:80 check inter 2000ms
server nginx27 198.211.113.86:80 check inter 2000ms
server nginx28 198.211.113.196:80 check inter 2000ms
backend gunicorn
balance roundrobin
@ -105,6 +111,11 @@ backend gunicorn
server gunicorn21 198.211.106.215:8000 check inter 2000ms
server gunicorn22 192.81.209.42:8000 check inter 2000ms
server gunicorn23 198.211.102.245:8000 check inter 2000ms
server gunicorn24 198.211.109.236:8000 check inter 2000ms
server gunicorn25 198.211.113.54:8000 check inter 2000ms
server gunicorn26 198.211.113.206:8000 check inter 2000ms
server gunicorn27 198.211.113.86:8000 check inter 2000ms
server gunicorn28 198.211.113.196:8000 check inter 2000ms
backend maintenance
option httpchk HEAD /maintenance HTTP/1.1\r\nHost:\ www

View file

@ -8,7 +8,7 @@ upstream icon_server {
}
server {
listen 81;
listen 80;
# listen 443 default_server ssl;
# ssl on;

14
fabfile.py vendored
View file

@ -50,6 +50,11 @@ env.roledefs ={
'198.211.106.215',
'192.81.209.42',
'198.211.102.245',
'198.211.109.236',
'198.211.113.54',
'198.211.113.206',
'198.211.113.86',
'198.211.113.196',
],
'dev': ['dev.newsblur.com'],
'debug': ['debug.newsblur.com'],
@ -112,6 +117,11 @@ env.roledefs ={
'198.211.106.215',
'192.81.209.42',
'198.211.102.245',
'198.211.109.236',
'198.211.113.54',
'198.211.113.206',
'198.211.113.86',
'198.211.113.196',
]
}
@ -459,7 +469,8 @@ def setup_repo():
with settings(warn_only=True):
run('git clone https://github.com/samuelclay/NewsBlur.git ~/newsblur')
sudo('mkdir -p /srv')
sudo('ln -f -s /home/%s/code /srv/' % env.user)
with settings(warn_only=True):
sudo('ln -f -s /home/%s/code /srv/' % env.user)
sudo('ln -f -s /home/%s/newsblur /srv/' % env.user)
def setup_repo_local_settings():
@ -658,6 +669,7 @@ def setup_app_firewall():
sudo('ufw default deny')
sudo('ufw allow ssh') # ssh
sudo('ufw allow 80') # http
sudo('ufw allow 8000') # gunicorn
sudo('ufw allow 8888') # socket.io
sudo('ufw allow 8889') # socket.io ssl
sudo('ufw allow 443') # https

View file

@ -16,7 +16,7 @@ ADMINS = (
('Samuel Clay', 'samuel@newsblur.com'),
)
SERVER_NAME = 'local'
SERVER_NAME = 'newsblur'
SERVER_EMAIL = 'server@newsblur.com'
HELLO_EMAIL = 'hello@newsblur.com'
NEWSBLUR_URL = 'http://www.newsblur.com'
@ -104,6 +104,7 @@ MIDDLEWARE_CLASSES = (
'apps.profile.middleware.SQLLogToConsoleMiddleware',
'subdomains.middleware.SubdomainMiddleware',
'apps.profile.middleware.SimpsonsMiddleware',
'apps.profile.middleware.ServerHostnameMiddleware',
# 'debug_toolbar.middleware.DebugToolbarMiddleware',
)