質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • Python 3.x

    9820questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • nginx

    1032questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

nginx の http server confファイル設定

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 169

roswell

score 5

Linux Mint の環境で、

Reminiscnece README.md
という、bookmark manger をインストールしたのですが、
nginx 経由でのアクセスがうまくいかず
どのようにすれば、いいのか困っています。
ご教示いただければと思います。

Nginx を用いない、単体での
runserver
に記載されている、
(venv) yama@jpx20120007:~/reminiscence/venv/reminiscence$ python manage.py runserver 127.0.0.1:8000

gunicorn
に記載されている
(venv) yama@jpx20120007:~/reminiscence/venv/reminiscence$ gunicorn --max-requests 100 --worker-class gthread --workers 2 --thread 5 --timeout 300 --bind 0.0.0:8000 reminiscence.wsgi
は、正常に動いています。

同ページの
nginx を用いた場合の設定で、sample の server conf を自分の環境に合わせて、下記の様にしたのですが、
http://localhost/static は、"404 Not found"
http://127.0.0.1:8000 は、"ERR_CONNECTION_REFUSED"
になります。
Nginx は、正しく動作しており、http://localhost http://127.0.0.1
共に、"Welcome to nginx" 表示します。

nginx の reminisence の server conf ファイルは、下部になります。

runserverやgurnicon は、virtualenvで、user yamaで実行されているのに、
nginxの場合は、virtualenv ではなく、rootで実行されているからなのかな?
と推測しているのですが...
nginx の設定も今回初めてなので、解決方法が分からず、質問しています。

(venv) yama@jpx20120007:/etc/nginx/conf.d$ cat reminiscence.conf
#worker_processes  2;

#events {
#    worker_connections  1024;
#}

#http {
#   include       mime.types;
#   default_type  application/octet-stream;

#   sendfile        on;
#   sendfile_max_chunk 512k;
#   keepalive_timeout  65;
#   proxy_read_timeout 300s;

    server {
        listen       80;
        server_name  localhost;
        client_max_body_size 1024m;

        location /static/ {
                root /home/yama/reminiscence/venv/reminiscence; # root of project directory
                aio threads;
        }
        location = /favicon.ico { access_log off; log_not_found off; }
        location / {
                 proxy_pass http://127.0.0.1:8000;
                 proxy_set_header Host $host;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                 root /home/yama/reminiscence/venv/reminiscence; #root of project directory
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
        root   /usr/share/nginx/html;
        }
    }
#}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • CHERRY

    2018/12/21 09:43 編集

    nginx にアクセスした際に /var/log/nginx/error.log に記録された内容を質問に そのまま追記してください。(ドメイン名、IPアドレス、ユーザー名等は例示用等で適宜置き換えてください。)

    キャンセル

  • roswell

    2018/12/21 17:26

    cherry さん サポートありがとうございます。
    下記の感じで、access.log には表示されますが、error.log には、何も出力されていません。

    yama@jpx20120007:/etc/nginx$ sudo service nginx stop
    yama@jpx20120007:/etc/nginx$ sudo rm /var/log/nginx/access.log /var/log/nginx/error.log
    yama@jpx20120007:/etc/nginx$ sudo service nginx start
    yama@jpx20120007:/etc/nginx$ cat /var/log/nginx/error.log
    yama@jpx20120007:/etc/nginx$ tail -f /var/log/nginx/access.log
    ::1 - - [21/Dec/2018:17:24:26 +0900] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
    ::1 - - [21/Dec/2018:17:24:37 +0900] "GET /static HTTP/1.1" 404 200 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

    キャンセル

回答 2

check解決した方法

0

解決しました。

引用テキストgunicorn をコマンドラインで「終了」させた状態で、nginx を restart させて、
broswerより 127.0.0.1:8000 でアクセスしても、"reminscense" の画面が表示されないのです。
ひょっとして、gunicornで動作させておかなければいけないのですかね?

gunicorn で、"reminiscense" を動作させた状態で使うのですね。
てっきり、nginx の 設定ファイルで、server が勝手に動くと勘違いしていました。
別PCからも、browserで"reminiscence"の画面がでました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

エラーログの内容が不明なので、推測で回答します。

---- 

http://localhost/static は、"404 Not found"

/home/yama/reminiscence/venv/reminiscence にあるファイルに nginx ユーザーでアクセス可能ですか?

http://127.0.0.1:8000 は、"ERR_CONNECTION_REFUSED"

proxy_pass は、リクエストを中継するだけなので、転送先の 127.0.0.1:8000 が稼働していて接続できないとアクセスできません。

python manage.py runserver 127.0.0.1:8000 で、起動した状態にして、nginx の URL にアクセししていますか?

Firewall で、ポートを塞いでいたりしませんか?

nginx の設定を変更した場合、nginx の再起動が必要ですが再起動していますか? ( reload でも反映されたと思います。)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/21 17:44

    Cherry さん 一つづつ回答書いていきますので、ご教示お願いします。

    > nginx ユーザーでアクセス可能ですか?
    nginx.conf 中に
    user www-data;
    があるので、user 'www-data' で実行されるので、user 'yama' のホーム以下のファイルにアクセスと実行ができないのが原因ですかね?
    コマンドライン上で、virtualenv で、gunicorn で実行可能なユーザーが、'yama' になので、nginx 設定ファイル中で、
    user 'yama' で実行させたいのですが、設定方法はありますでしょうか?

    キャンセル

  • 2018/12/21 17:45

    >proxy_pass は、リクエストを中継するだけなので、転送先の 127.0.0.1:8000 が稼働していて接続できないとアクセスできません。

    nginx+gunicornで動かそうとしているserverが、同一ホストでも駄目なんですね。そのあたりがイマイチ把握できていなくて...
    それ以前に、前述ののユーザー設定がだめなのかもしれが...

    キャンセル

  • 2018/12/21 17:54

    >python manage.py runserver 127.0.0.1:8000 で、起動した状態にして、nginx の URL にアクセししていますか?

    コマンドラインで、python manager.py runserver 127.0.0.1:8000 で動かした状態で、問題なく"reminiscence"の画面が表示され、動作もします。
    gunicorn をコマンドラインで実行させた状態でも、同様、正常に動作します。
    gunicorn をコマンドラインで「終了」させた状態で、nginx を restart させて、
    broswerより 127.0.0.1:8000 でアクセスしても、"reminscense" の画面が表示されないのです。
    ひょっとして、gunicornで動作させておかなければいけないのですかね?

    キャンセル

  • 2018/12/21 17:55

    > Firewall で、ポートを塞いでいたりしませんか?
    前述したとおり、同一ホストでも駄目なんですね。そのあたりがイマイチ把握できていなくて...

    キャンセル

  • 2018/12/21 17:55

    >nginx の設定を変更した場合、nginx の再起動が必要ですが再起動していますか? ( reload でも反映されたと思います。)

    実行済みです。

    キャンセル

  • 2018/12/21 18:28

    gunicornとnginxを同時に稼働させる必要がありますよ!
    CHERRYさんの回答されている、「中継されるだけ」というのが、その理由です。(実態はgunicorn)

    キャンセル

同じタグがついた質問を見る

  • Python 3.x

    9820questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • nginx

    1032questions

    nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。