1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

uWSGIの役割について

1
Last updated at Posted at 2026-03-30

はじめに

閲覧ありがとうございます。
現在は Python(Flask)を用いて、Webアプリのサーバーサイド領域で運用保守業務をしています。
uWSGIについて学ぶ機会があり、備忘録として自分なりに整理してまとめたいと思います。

認識が間違っている所はお手数ですが、ご指摘頂ければと思います。

uWSGIとは?

まずは公式ドキュメントです。

uWSGIを理解するうえでは、先に WSGI という言葉を軽く押さえておくと分かりやすいです。

WSGIは、PythonのWebアプリケーションとWebサーバーがやり取りするための共通ルール

です。
FlaskのようなPython製Webアプリは、このWSGIという仕組みに沿って動作します。

そのうえで、uWSGIを理解するには、まずはブラウザとサーバーの関係を理解する必要があります。

クライアントサーバーシステム

一般的にWebアプリケーションでは クライアント(ブラウザ) がサーバーにリクエストを送り、
サーバー はその内容に応じてレスポンスを返します。
これがいわゆる クライアント・サーバーシステム です。

簡単に表すと、以下のようなイメージです。

サーバー側には、たとえば以下のようなものがあります。

  • Webアプリケーション
  • データベース
  • 各種ライブラリやモジュール
  • Webサーバー

WebサーバーはブラウザからHTTPリクエストを受け取り、Flaskアプリケーションへ連携します。

ここで重要なのは、PythonのWebアプリケーションはブラウザからのHTTP通信をそのまま直接扱うのではなく、
WSGIに基づいて、リクエストとレスポンスを受け渡す、という点です。

その役割を担うのが WSGIサーバー です。
uWSGIは、そのWSGIサーバーのひとつです。

つまり、uWSGIは、WebサーバーとPythonアプリケーションの間に入り、リクエストを受け渡すための仲介役として動作します。

実際のコード

簡単なflaskアプリを用意しました

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello, uWSGI!"

@app.route("/health")
def health():
    return "ok"

下記で起動してみます。

uwsgi --http :5000 --wsgi-file app.py --callable app

別の方法として、起動ファイルに詳細を記載し、起動時にそれを指定することもできます。

[uwsgi]
http = 0.0.0.0:5000
wsgi-file = app.py
callable = app

master = true
processes = 4
threads = 2

vacuum = true
die-on-term = true

起動コマンド

uwsgi --ini uwsgi.ini

まとめ

uWSGIは、WebサーバーとPythonアプリケーションの間をつなぐための仕組みです。
ブラウザから来たリクエストを、FlaskのようなPythonアプリが扱える形で受け渡しする役割を持っています。

お役に立てれば幸いです。


【参考文献】
https://wa3.i-3-i.info/word12355.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?