#解決したい内容
Macから、multipassのUbuntu環境に作成したwebアプリに、nginxとuwsgiを経由してアクセスしたいのですが、Not Foundになってしまいます。
- MacのmultipassでUbuntu20.04のインスタンスを作成。
- Ubuntu側でnginx+uwsgi+flaskのwebアプリを配置。
- MacのブラウザからUbuntuのアプリにアクセスする。
- Not Foundが表示される。
#環境
- macOS Big Sur
- multipass 1.8.1+mac
- Ubuntu 20.04 LTS
- nginx 1.18.0-0ubuntu1.2
- pyenv 2.2.0
- python 3.8.5
- flask 2.0.2
- uwsgi 2.0.20
#使用ファイルや設定
ディレクトリ構成
/home/ubuntu/workspace/flasktest/ app.py app.ini
UbuntuのIPアドレス
$hostname -I 192.164.62.5
app.py
#coding: utf-8 from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
app.ini
[uwsgi] module = app callable = app master = true processes = 1 socket = /home/ubuntu/workspace/flasktest/uwsgi.sock #http = 192.164.62.5:8080 chmod-socket = 666 vacuum = true die-on-term = true wsgi-file = /home/ubuntu/workspace/flasktest/app.py logto = /home/ubuntu/workspace/flasktest/app.log
nginx.confのhttpディレクティブでsites-enabled/*をincludeし、sites-enabledから下のdefaultにシンボリックリンクを貼っています。
/etc/nginx/sites-available/default
server { listen 192.164.62.5:8080; listen [::]:8080; server_name _; root /var/www/example.com; index index.html; location / { try_files $uri $uri/ =404; } location /uwsgi { include uwsgi_params; #uwsgi_pass http://192.164.62.5:8080; uwsgi_pass unix:///home/ubuntu/workspace/flasktest/uwsgi.sock; } }
#試したこと
上記の設定で、
$sudo service nginx start $uwsgi --ini app.ini
を実行したあと、Macのブラウザから、まず192.164.62.5:8080にアクセスすると、
Welcome to nginx!
のページは表示されるのですが、
次に192.164.62.5:8080/uwsgiにアクセスすると、
Not Found The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
と表示されます。
nginxのuwgi_passをhttp~に変えるとエラーメッセージが502 bad gate wayに変わっただけでした。
multipass環境での情報がなかなか見つけられず、なにか分かることがあればご教示いただきたく、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。