Quellcode durchsuchen

Convert pump.io to nginx

Bob Mottram vor 10 Jahren
Ursprung
Commit
fff123e88e
1 geänderte Dateien mit 53 neuen und 52 gelöschten Zeilen
  1. 53
    52
      beaglebone.txt

+ 53
- 52
beaglebone.txt Datei anzeigen

@@ -4911,7 +4911,7 @@ Add the following, replacing /mypumpiodomainname.com/ with your domain name.
4911 4911
     "serverUser":  "pumpio",
4912 4912
     "rejectUnauthorized": false,
4913 4913
     "key":  "/var/local/pump.io/keys/mypumpiodomainname.com.key",
4914
-    "cert":  "/var/local/pump.io/keys/mypumpiodomainname.com.crt",
4914
+    "cert":  "/var/local/pump.io/keys/mypumpiodomainname.com.bundle.crt",
4915 4915
     "uploaddir": "/var/local/pump.io/uploads",
4916 4916
     "debugClient": false,
4917 4917
     "firehose": "ofirehose.example",
@@ -4929,80 +4929,81 @@ mkdir /var/local/pump.io/uploads
4929 4929
 mkdir /var/local/pump.io/keys
4930 4930
 cp /etc/ssl/private/$HOSTNAME.key /var/local/pump.io/keys
4931 4931
 cp /etc/ssl/certs/$HOSTNAME.crt /var/local/pump.io/keys
4932
+cp /etc/ssl/certs/$HOSTNAME.bundle.crt /var/local/pump.io/keys
4932 4933
 useradd -s /bin/bash -d /var/local/pump.io pumpio
4933 4934
 chown -R pumpio:pumpio /var/local/pump.io
4934 4935
 chmod 400 /var/local/pump.io/keys/*
4935 4936
 chmod -R 777 /opt
4936 4937
 #+END_SRC
4937 4938
 
4938
-Patch the version of Apache.
4939
+Edit your web server configuration.
4939 4940
 
4940 4941
 #+BEGIN_SRC: bash
4941
-mkdir ~/build
4942
-mkdir ~/build/apache2
4943
-cd ~/build/apache2
4944
-apt-get build-dep apache2
4945
-apt-get install autoconf
4946
-apt-get source apache2
4947
-cd apache2-*
4948
-wget http://freedombone.uk.to/apache-2.2-wstunnel.patch
4949
-sha256sum apache-2.2-wstunnel.patch
4950
-cfc4866da2688a8eb76e0300cf16b52539ef4e525053a3851d4b6bba9a77e439
4951
-
4952
-patch -p1 -i apache-2.2-wstunnel.patch
4953
-autoconf
4954
-./configure --enable-so --enable-proxy=shared --enable-proxy-wstunnel=shared
4955
-make
4956
-make install
4957
-
4958
-cp modules/proxy/.libs/mod_proxy_wstunnel.so  /usr/lib/apache2/modules/
4959
-cd /etc/apache2/mods-enabled
4960
-ln -s /usr/lib/apache2/modules/mod_proxy_wstunnel.so ../mods-available/proxy_wstunnel.load
4942
+editor /etc/nginx/sites-available/$HOSTNAME
4961 4943
 #+END_SRC
4962 4944
 
4963
-Within the section of your Apache site configuration:
4945
+Delete all existing contents then add the following:
4964 4946
 
4965 4947
 #+BEGIN_SRC: bash
4966
-editor /etc/apache2/sites-available/mypumpiodomainname.com
4967
-#+END_SRC
4948
+upstream pumpbackend {
4949
+    server 127.0.0.1:7270 max_fails=3 fail_timeout=30s;
4950
+    server 127.0.0.1:7270 max_fails=3 fail_timeout=60s;
4951
+    server 127.0.0.1:7270 max_fails=3 fail_timeout=90s;
4952
+}
4968 4953
 
4969
-The initial section which begins with *<VirtualHost *:80>* should be replaced by the following, replacing /mypumpiodomainname.com/ with your pump.io domain name and /myusername@mydomainname.com/ with your email address.
4954
+server {
4955
+    listen 80;
4956
+    server_name mypumpiodomainname.com;
4957
+    rewrite ^ https://$server_name$request_uri? permanent;
4958
+}
4970 4959
 
4971
-#+BEGIN_SRC: bash
4972
-<VirtualHost *:80>
4973
-	ServerAdmin myusername@mydomainname.com
4974
-	ServerName mypumpiodomainname.com
4960
+map $http_upgrade $connection_upgrade {
4961
+    default upgrade;
4962
+    ''      close;
4963
+}
4975 4964
 
4976
-    RewriteEngine On
4977
-    RewriteCond %{HTTPS} off
4978
-    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
4979
-</VirtualHost>
4980
-#+END_SRC
4965
+server {
4966
+    listen 443 ssl;
4967
+    server_name mypumpiodomainname.com;
4981 4968
 
4982
-Add the following in the section which begins with *<VirtualHost *:443>*.
4969
+    error_log  /var/www/mypumpiodomainname.com/error.log debug;
4983 4970
 
4984
-#+BEGIN_SRC: bash
4985
-    ProxyVia On
4986
-    ProxyPreserveHost On
4987
-	ProxyRequests Off
4988
-    SSLProxyEngine On
4971
+    ssl on;
4972
+    ssl_certificate /etc/ssl/certs/mypumpiodomainname.com.bundle.crt;
4973
+    ssl_certificate_key /etc/ssl/private/mypumpiodomainname.com.key;
4974
+
4975
+    ssl_session_timeout 5m;
4976
+    ssl_prefer_server_ciphers on;
4977
+    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # not possible to do exclusive
4978
+    ssl_ciphers 'EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA';
4979
+    #add_header Strict-Transport-Security max-age=15768000; # six months
4980
+    # use this only if all subdomains support HTTPS!
4981
+    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains";
4982
+
4983
+    client_max_body_size 6m;
4984
+
4985
+    keepalive_timeout 75 75;
4986
+    gzip_vary off;
4989 4987
 
4990
-    ProxyPass / https://localhost:7270/
4991
-    ProxyPassReverse / https://localhost:7270/
4988
+    location / {
4989
+        proxy_pass https://pumpbackend;
4990
+        proxy_http_version 1.1;
4991
+        proxy_redirect off;
4992
+        proxy_set_header Upgrade $http_upgrade;
4993
+        proxy_set_header Connection $connection_upgrade;
4994
+        proxy_set_header Host $http_host;
4995
+        proxy_set_header X-Real-IP $remote_addr;
4996
+        proxy_buffers 16 32k;
4997
+    }
4998
+}
4992 4999
 #+END_SRC
4993 5000
 
4994 5001
 Save and exit.
4995 5002
 
4996 5003
 #+BEGIN_SRC: bash
4997
-a2enmod ssl
4998
-a2enmod cache
4999
-a2enmod disk_cache
5000
-a2enmod expires
5001
-a2enmod proxy
5002
-a2enmod proxy_connect
5003
-a2enmod proxy_http
5004
-apachectl configtest
5005
-service apache2 restart
5004
+sed "s/mypumpiodomainname.com/$HOSTNAME/g" /etc/nginx/sites-available/$HOSTNAME > /tmp/website
5005
+cp -f /tmp/website /etc/nginx/sites-available/$HOSTNAME
5006
+service nginx restart
5006 5007
 npm install forever -g
5007 5008
 #+END_SRC
5008 5009