diff --git a/apps/profile/middleware.py b/apps/profile/middleware.py index 365ac0114..f3403c4fa 100644 --- a/apps/profile/middleware.py +++ b/apps/profile/middleware.py @@ -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): diff --git a/config/debug_haproxy.conf b/config/debug_haproxy.conf index c221ad10b..4be9c0d16 100644 --- a/config/debug_haproxy.conf +++ b/config/debug_haproxy.conf @@ -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 \ No newline at end of file + stats refresh 15s diff --git a/config/haproxy.conf b/config/haproxy.conf index fd04b1c87..13b0fa7e5 100644 --- a/config/haproxy.conf +++ b/config/haproxy.conf @@ -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 diff --git a/config/nginx.newsblur.conf b/config/nginx.newsblur.conf index db951be86..226ffec36 100644 --- a/config/nginx.newsblur.conf +++ b/config/nginx.newsblur.conf @@ -8,7 +8,7 @@ upstream icon_server { } server { - listen 81; + listen 80; # listen 443 default_server ssl; # ssl on; diff --git a/fabfile.py b/fabfile.py index 86d4a49b7..e45d1e765 100644 --- a/fabfile.py +++ b/fabfile.py @@ -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 diff --git a/settings.py b/settings.py index f7205bf1d..745e79f9c 100644 --- a/settings.py +++ b/settings.py @@ -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', )