2017-05-27 54 views
3

私は既にArch Linuxボードでこれを尋ねましたが、答えは出ませんでした。だから私はここで私の運を試しています:nginx + gunicorn:複数のFlaskアプリケーションをデプロイ

私は複数のFlaskアプリケーションを実行するために、私のアーチLinuxサーバ上でnginx + gunicornを設定しようとしています。しかし、私は一見nginxを正しい方法で設定することに失敗しています。 私はフラスコのアプリケーションを1つ起動して、すべてを動かすとうまくいくようです。/etc/nginx/sites-availableと/ etc/nginx/sites-enabledを/etc/nginx/nginx.confに含めました。 私は/ etc/nginx/sites/availableの中に "flask_settings"というファイルを作成し、それを/ etc/nginx/sites-enabledにリンクしました。私は仮想環境でgunicornで実行私のフラスコアプリ(サンプルアプリケーション、hellp.py)を含むフォルダを持っている

server { 
    location /{ 
      proxy_pass http://127.0.0.1:8000; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 

} 


} 

:ファイルには、次のようになります。私はちょうどそれを使用して実行する

gunicorn hello:app 

私は私のサーバーIPにアクセスする場合、私はファイルと異なるルートにアクセスすることができます。 今度は、/ etc/nginx/sites-enabledにflask2という別のファイルを作成する別のアプリをセットアップしようとしました。それは次のようになります。

server { 
    location /hello { 
      proxy_pass http://127.0.0.1:8001; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 

} 


} 

私はその後、私はその後のnginxを再起動すると、私はまだ最初のアプリにアクセスできるようにしています

gunicorn --bind 127.0.0.1:8001 hello:app 

には専用の仮想環境内でアプリケーションを実行しようとすると、すべての私のサーバIP +ルータ(「/」の後ろに)を入力して別のサーバにアクセスしようとすると、nginxは常にそのサイトが見つからないことを知らせます。ここに何もないのですか? ご協力いただきまして誠にありがとうございます。 ありがとうございます!

答えて

0

両方のアプリに対して別々のプロキシの場所が必要です。 つまり、1つのnginx confファイルがありますが、各ルートに複数の場所がある場合や、それぞれに別のconfファイルを持つことができます。例えば

:第二のアプリの位置にポート番号 h2.example.comプロキシで必要なアドレスに位置する h1.example.comプロキシ。

+0

したがって、1つのファイルを作成して2つ追加することを意味します。 –

+0

はい、1つのngnixファイルに2つのアプリケーションを提供します。あなたがアプリを走らせたそれぞれのポートに、各アプリを渡すプロキシ。 [This](https://stackoverflow.com/questions/13660118/running-a-flask-app-with-nginx-and-gunicorn?rq=1)は役に立ちます –

関連する問題