0
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?

Flask × Nginx でWebサーバを構築してみた|シリーズ概要と完成形の紹介【第1回】

Last updated at Posted at 2025-06-18

Flask × Nginx でWebサーバを構築してみた

今回は、自宅Linuxサーバ上で Flask + Nginx 構成のWebサーバを構築した記録を、シリーズ記事として残していきます。

この第1回では、完成形の概要を共有し、次回以降で導入技術ごとの詳細を解説します。

本シリーズの目標

  • Nginxリバースプロキシを通してFlaskアプリを外部公開
  • セキュリティ対策として UFW を活用したポート制限
  • HTTPS(443)を Let’s Encrypt などで実装

なぜWebページを公開したのか?

今回Webサーバを外部に公開したのは、自分が学んだことを“見える化”したいと考えたからです。

最近キャリアを見直す中で、「転職活動を意識するなら、自分が勉強してきた内容をアウトプットとして残しておくことが大事」だと感じました。
Qiita記事やコードだけでなく、実際に動作するWebページを公開することで、自分の技術力をよりリアルに伝えられると考えたのが背景です。

また、公開することでモチベーションも上がり、今後はより面白い機能やUI改善なども取り入れて自分の技術力と同時に成長するWebサーバーとして活用できると思いました。

実際に動いているページ紹介

WebページURL:
http://termnix-it.tplinkdns.com

  • 公開環境:自宅サーバ(Ubuntu)で常時稼働中
  • 公開ポート:HTTP(80番)にてアクセス可能
  • セキュリティ:UFW にて制限あり、HTTPSは後日対応予定
  • メンテナンス予定:不定期(開発中のため、稼働が一時的に止まることがあります)

使用した技術スタック

要素 詳細
OS Ubuntu系Linux
Webサーバ Flask (localhost:5000)
プロキシ Nginx (ポート80/443)
Firewall UFW(80番ポートのみ許可)
ルーター TP-Link Archer AX23(ポート転送使用)

構成図

下図が今回の構成になります。
スクリーンショット 2025-06-18 221244.png

外部(スマホ/PC)から HTTPリクエストをルーター経由で転送し、NginxがFlaskアプリに渡す構成です。現在はHTTP(ポート80)のみ開放しており、HTTPSは後日対応予定です。

今後の記事予定(リンクは随時追加)

  • 第2回 【Flask編】Pythonで簡単Webアプリ構築
  • 第3回 【Nginx編】Flaskアプリを外部公開する方法
  • 第4回 【Firewall/ポート設定編】安全に公開するための基本設定

まとめ

構築系の記事は一度に書こうとすると情報量が多くなるため、完成形を見せた上で分割解説する形式を取ります。
次回は【Flask編】として、ローカルで簡単なWebアプリを立ち上げるところから始めていきます!

追記(執筆者メモ)
作業環境:Ubuntu Server / VSCode Remote / ローカル開発→本番反映の2段構成
使用エディタ:Cursor(VSCodeベースのAI対応エディタ)
最終更新:2025年6月18日

0
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
0
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?