Vapor 3プロジェクト0から導入まで
4803 ワード
環境 macOS 10.15.1 & swift 5 Xcode 11.2.1 Ubantu 18.04 & swift 5
ターゲット
ubantuへのアプリケーションの導入
手動でrepoを追加します.
関連環境のインストール
プロジェクトのコンパイル
FootprintVaporプロジェクトを引き出す
プロジェクトのコンパイル
コンパイル情報の表示
nginx
nginx構成の追加
xxx.comプロファイルに追加
構成を有効にする
nginx常用コマンド
無料HTTPS証明書
Certbot Certbotのインストールは、Let's Encrypt証明書の管理(申請、更新、構成、取り消し、削除など)に使用できます.ここにはnginxプラグイン付きcertbotがインストールされています.
申請証明書はcertbotコマンドを使用して
証明書の申請が成功した後.Let's Encrypt証明書の有効期間は3ヶ月しかありません.証明書を更新するには簡単なコマンドが必要です.
スケジュールタスクの自動更新
Timers
Certbotは
毎日0時と12時に
毎日午前5時に証明書を更新します.期限切れの30日前に更新を申請するしかないので、60日前にこの任務は何もしていませんでした.
変更を保存するには、タイマーを再起動する必要があります.
supervisor
supervisorの構成
command:実行するコマンドdirectory:プロジェクトのパスuser:実行者、すなわち現在ログインしているユーザー名
ファイルを保存してから、構成を有効にします.
OKプロジェクト構成完了
supervisor常用コマンド
ターゲット
vapor
アプリケーションを作成し、9090
ポートを使用して
xxx.com
vaporアプリケーション`を実行します.ubantuへのアプリケーションの導入
手動でrepoを追加します.
wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | sudo apt-key add -
echo "deb https://repo.vapor.codes/apt $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/vapor.list
sudo apt-get update
関連環境のインストール
sudo apt-get update
sudo apt-get upgrade
eval "$(curl -sL https://apt.vapor.sh)"
sudo apt-get install swift vapor
sudo apt-get install nginx
sudo apt-get install supervisor
プロジェクトのコンパイル
FootprintVaporプロジェクトを引き出す
git clone xxx.git
プロジェクトのコンパイル
cd FootprintVapor
vapor build --release
コンパイル情報の表示
/root/code/FootprintVapor/.build/release/Run serve --env=production
./.build/release/Run serve --env=production
nginx
nginx構成の追加
cd /etc/nginx/sites-enabled/
vim xxx.com;//
xxx.comプロファイルに追加
server {
server_name xxx.com; #
listen 80;
root /home/vapor/Hello/Public/; # Public,
try_files $uri @proxy; #
location @proxy {
proxy_pass http://127.0.0.1:9090;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Server;
proxy_connect_timeout 3s;
proxy_read_timeout 10s;
}
}
構成を有効にする
sudo service nginx restart
nginx常用コマンド
sudo nginx -t //
sudo service nginx stop //
sudo service nginx start //
sudo service nginx restart //
sudo service nginx reload//
無料HTTPS証明書
Certbot Certbotのインストールは、Let's Encrypt証明書の管理(申請、更新、構成、取り消し、削除など)に使用できます.ここにはnginxプラグイン付きcertbotがインストールされています.
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:certbot/certbot
sudo apt-get install -y python-certbot-nginx
申請証明書はcertbotコマンドを使用して
xxx.com
にHTTPS証明書を申請します.--nginxオプションは、Webサーバがnginxであることを示し、-dオプションはドメイン名を指定し、-nオプションは非インタラクティブな実行コマンドを表す.-nオプションを削除すると、端末はhttpリクエストをhttpリクエストにリダイレクトするかどうかを選択するように注意します.certbot --nginx -d xxx.com -n --email [email protected] --agree-tos
証明書の申請が成功した後.Let's Encrypt証明書の有効期間は3ヶ月しかありません.証明書を更新するには簡単なコマンドが必要です.
sudo certbot renew
スケジュールタスクの自動更新
Timers
Certbotは
/lib/systemd/system/
の下で2つのファイルを生成した:certbot.service
とcertbot.timer
、1つはサービスであり、1つはタイマーである.certbot.service: [Unit]
Description=Certbot
Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
Documentation=https://letsencrypt.readthedocs.io/en/latest/
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot -q renew
PrivateTmp=true
certbot -q renew
コマンドも実行されていることがわかります.certbot.timer: [Unit]
Description=Run certbot twice daily
[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=43200
Persistent=true
[Install]
WantedBy=timers.target
毎日0時と12時に
certbot.service
をアクティブにします.実はこんなに頻繁に証明書を更新する必要はありません.また、証明書を更新するときにフックをつけてNginxサービスを閉鎖して開くので、夜明けにウェブサイトにアクセスしていないときに証明書を更新したほうがいいです.少し修正します.[Unit]
Description=Run certbot every 05:00
[Timer]
OnCalendar=*-*-* 05:00:00
Persistent=true
[Install]
WantedBy=timers.target
毎日午前5時に証明書を更新します.期限切れの30日前に更新を申請するしかないので、60日前にこの任務は何もしていませんでした.
変更を保存するには、タイマーを再起動する必要があります.
systemctl daemon-reload
systemctl restart certbot.timer
supervisor
supervisorの構成
cd /etc/supervisor/conf.d
sudo vim FootprintVapor.conf
FootprintVapor.conf
に追加[program:FootprintVapor]
command=/root/code/FootprintVapor/.build/release/Run serve --env=production
directory=/root/code/FootprintVapor/
user=root
stdout_logfile=/var/log/supervisor/%(program_name)-stdout.log
stderr_logfile=/var/log/supervisor/%(program_name)-stderr.log
command:実行するコマンドdirectory:プロジェクトのパスuser:実行者、すなわち現在ログインしているユーザー名
ファイルを保存してから、構成を有効にします.
sudo supervisorctl reread
sudo supervisorctl add FootprintVapor
sudo supervisorctl start FootprintVapor
OKプロジェクト構成完了
supervisor常用コマンド
supervisorctl status
supervisorctl reload
supervisorctl update
supervisorctl stop
sudo supervisorctl stop all
sudo supervisorctl start all