GCE × CentOS 7 × nginx × Let's Encrypt(certbot) × Node.js × Git 備忘録
やること
Google Cloud Platform の
Google Compute Engine に
CentOS 7 でインスタンスを構築して
freenom で無料ドメインを取得して
certbot で無料SSL証明書を発行して
nginx でWebサーバーを立ち上げて
Node.js を公開する(nginxのリバースプロキシ使用)
個人的備忘録のため、説明不足で申し訳ないです。。。
そのうち、もう少しわかりやすくまとめます。
Google Compute Engine を作成
Google Cloud Platform にログインして
VMインスタンスを生成(ブートディスクは CentOS 7 を選択)
- ファイアウォールは HTTP/HTTPSともに許可する
- その他はご自由に
できるだけ安くするなら、
- リージョン/ゾーンは us-XXXX
- マシンタイプは f1-micro
- ブートディスクのサイズは 30GB以下
生成したら外部IPを確認
ただし、node.jsで運用するとなるとマシンタイプがf1-microだと厳しいと思われます。
freenomで無料ドメイン取得
ドメインを取得したらDNSの設定をGCEの外部IPに設定する
なお、VMインスタンスはマシンタイプを変更するなどした場合に、
外部IPアドレスが変更されることがありますので、
その場合は、改めてfreenomのDNS設定を変更する必要があります。
GCEにSSH接続
SELinuxを無効化(config)
*リバースプロキシがうまく作動しないため
移動
cd /etc/selinux/
念のためバックアップ
sudo cp config config_back_up
編集
sudo vi config
SELINUX=enforcing
↓
SELINUX=disabled
編集が終わったらインスタンスをリセット
nginxのインストール
nginxのインストール
sudo yum install nginx
確認のためにnginxを起動
sudo service nginx start
起動後、外部IPにHTTPアクセスして確認
Let's Encrypt(certbot)でSSL証明書取得
certbotのインストール
sudo yum install certbot-nginx
移動
cd /etc/nginx/
念のためバックアップ
sudo cp nginx.conf nginx_back_up.conf
nginxの設定を変更
sudo vi /etc/nginx/nginx.conf
server_name _;
↓
server_name example.com www.example.com;
設定チェック
sudo nginx -t
SSL証明書発行
sudo certbot --nginx -d example.com -d www.example.com
同意しますか? → A
メール送りますか? → N
HTTPをHTTPSにリダイレクトしますか? → 2
dhparam.pemを作成
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
nginxの設定を変更
sudo vi /etc/nginx/nginx.conf
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
設定チェック
sudo nginx -t
nginxを再起動
sudo systemctl reload nginx
再起動後、外部IPにHTTPSアクセスして確認
クーロンで毎月1日の午前4時に自動更新
*有効期間が3ヶ月のため
sudo crontab -e
00 04 01 * * /usr/bin/certbot renew --quiet
Gitのインストール
パッケージをインストール
sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker autoconf
Node.jsのインストール
nvmのインストール
sudo git clone git://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh
node.jsのインストール
nvm install vX.X.X
*お好きなバージョンをインストール
nvm確認
nvm --version
node.js確認
node -v
npm確認
npm -v
Node.jsファイルをGitでクローン
ホームディレクトリ内にnode.jsファイルをクローン
cd ~
mkdir XXXX
cd XXXX
sudo git clone https://github.com/********/****.git ./
node実行(適当なポートで受付)
npm start
nginxのリバースプロキシを設定
sudo vi /etc/nginx/nginx.conf
location [node.jsに振りたいパス(ルートなら / )] {
proxy_pass http://localhost:[ポート番号]/;
proxy_cookie_path /XXXX/ //;
proxy_set_header X-Forwarded-For $remote_addr;
}
*https(443)で受けているserver{}内
以上
お疲れさまでした。
Author And Source
この問題について(GCE × CentOS 7 × nginx × Let's Encrypt(certbot) × Node.js × Git 備忘録), 我々は、より多くの情報をここで見つけました https://qiita.com/smilemonster/items/9e1120d4d119d7159515著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .