Flaskアプリを引っ越す(3)

昨日は、Ubuntu 起動時にアプリを自動起動する systemctl enable コマンドでエラーが出る、というところで終わった。

動いている

エラーが出ているのでてっきり自動起動に失敗しているものとばかり思っていたけど、ちゃんと enabled になっていた。

[email protected]:~$ systemctl list-unit-files | grep bruschetta
bruschetta.service                         enabled
[email protected]:~$ systemctl status bruschetta
● bruschetta.service - Bruschetta service
   Loaded: loaded (/lib/systemd/system/bruschetta.service; enabled; vendor prese
   Active: active (running) since 火 2017-02-28 22:42:15 JST; 6h ago
  Process: 1105 ExecStart=/etc/init.d/bruschetta start (code=exited, status=0/SU
 Main PID: 1138 (uwsgi)
   CGroup: /system.slice/bruschetta.service
           ├─1138 uwsgi bruschetta.ini
           ├─1569 uwsgi bruschetta.ini
           └─1570 uwsgi bruschetta.ini

試しにリブートしてみても、ちゃんと自動起動していることを確認した。
うーん、ますます訳がわかんなくなってきた。が、まあいい、この件は後でゆっくり調べることにして、先に進めよう。

データベースファイルをコピー

apostrophe からデータベースファイルをコピーする。Sqlite3 なので、単にファイルを上書きコピーすればいいだけだ。

[email protected]:~/bruschetta/bruschetta$ scp [email protected]:bruschetta/bruschetta/bruschetta.db .
[email protected]'s password: 
bruschetta.db                                 100%  876KB 876.0KB/s   00:00

そんで、アプリを再起動。

[email protected]:~/bruschetta/bruschetta$ sudo systemctl stop bruschetta
[sudo] bruschetta のパスワード: 
[email protected]:~/bruschetta/bruschetta$ sudo systemctl start bruschetta

service コマンドじゃなくて systemctl コマンドを使ってみた。ブラウザで確認してみると、無事データが移行されていた。

Nginxのヴァーチャルホスト

ヴァーチャルホスト bruschetta でアプリにアクセスできるようにする。これも設定ファイルを apostrophe からコピーしてくる。

[email protected]:~/bruschetta/bruschetta$ cd /etc/nginx/sites-available
[email protected]:/etc/nginx/sites-available$ sudo scp [email protected]:/etc/nginx/sites-available/bruschetta .
[email protected]'s password: 
bruschetta                                    100%  905     0.9KB/s   00:00

コピーした設定ファイルがこれ。

upstream uwsgi-bruschetta {
    server 127.0.0.1:9090;
}

server {
    # port
    listen 80;

    # server name
    server_name bruschetta;

    # document root
    root /home/bruschetta/bruschetta;

    # index
    #index index.php index.html index.htm;

    # log files
    access_log /var/log/nginx/bruschetta/access.log combined;
    error_log /var/log/nginx/bruschetta/error.log warn;

    keepalive_timeout 60;
    proxy_connect_timeout 60;
    proxy_read_timeout 60;
    proxy_send_timeout 60;

    #client_max_body_size 20M;

    location / {
        #root /home/bruschetta/bruschetta;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_pass http://uwsgi-bruschetta;
    }

}

sites-enabled/bruschetta にリンクを張る。

[email protected]:/etc/nginx/sites-available$ sudo ln -s /etc/nginx/sites-available/bruschetta /etc/nginx/sites-enabled/bruschetta
[email protected]:/etc/nginx/sites-available$ cd ../sites-enabled
[email protected]:/etc/nginx/sites-enabled$ ls
bruschetta  default

ログファイル用のディレクトリを作る。

[email protected]:/etc/nginx/sites-enabled$ sudo mkdir /var/log/nginx/bruschetta

/etc/hosts ファイルを編集して1行追加。

192.168.1.6 bruschetta

そして Nginx を再起動。

[email protected]:/etc/nginx/sites-enabled$ sudo systemctl restart nginx

OK。あとは他のマシンの hosts ファイルも編集して bruschetta にアクセスできるようにするだけだ。はー、長かった。

カテゴリー: misc, Python, Ubuntu パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください