Skip to content

Instantly share code, notes, and snippets.

@blackstuend
Last active December 21, 2018 04:31
Show Gist options
  • Save blackstuend/9104a4d881b7c62a0f064cfd631c9a57 to your computer and use it in GitHub Desktop.
Save blackstuend/9104a4d881b7c62a0f064cfd631c9a57 to your computer and use it in GitHub Desktop.

Install node.js

apt-get install curl python-software-properties
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
apt-get install nodejs
nodejs -v //判斷版本
npm -v 

Install mongodb

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
apt-get install mongodb
sudo apt-get update
sudo apt-get install -y mongodb-org
systemctl start mongodb

Install pm2 and ngnix

sudo npm install -g pm2
pm2 start app.js
pm2 startup systemd
sudo apt-get install nginx
vim /etc/nginx/sites-available/default
  • 設定SSL with nginx
add-apt-repository ppa:certbot/certbot
apt-get update
sudo apt-get install python-certbot-nginx
certbot --nginx -d blackfloat.com -d www.blackfloat.com
certbot renew --dry-run
  • 更改為
server {
  listen [::]:80;
  listen 80;
 
    server_name blackfloat.com;
 
  # redirect http to https www
  return 301 https://blackfloat.com;
}
server {
    listen 443;
    server_name blackfloat.com;
    ssl on;

  # 設定 SSL 憑證
    ssl_certificate /etc/letsencrypt/live/blackfloat.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/blackfloat.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE-2014-3566)
  ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
  ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://localhost:3000;
            proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

  • 檢查nginx
nginx -t
sudo systemctl restart nginx 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment