[Python]爆速・秒速で簡易Webサーバーを立てる

こんにちはやまぱんです。
検証のためなどに簡易Webサーバを立てたいことがあると思います。
簡易Webサーバを立てる方法はいくつかありますが、最も簡単で汎用性が高いと思うpythonを作った方法について今回は説明します。

こんな感じの簡易Webサーバを立ててみます。

前提

  • Python3 が インストール済みであること
  • OSはなんでもOK
    今回は WIndows と Ubuntu の環境で試してみました

簡易Webサーバを立てる手順

適当なフォルダに index.html を作る

index.html を作らなくてもWebサーバは立てることはできますが、当該コマンドを実行したディレクトリがWebに表示されて見栄が悪いので今回はちゃんと立てます。

  • index.html の中身の例
    <title> yamapan test page</title>
    <body>
    <h1>yamapan test page</h1>
    This is a test page.
    </body>
    </html> 

index.html のあるフォルダに移動して、Webサーバを立てる

ディレクトリの移動には cd コマンドなどで移動してください。

そして下記コマンドを実行します。

python3  -m http.server 8080

または

Python  -m http.server 8080

このような実行結果になればWebサーバが立ち上がっているので、ローカル環境からアクセスするには
http://localhost:8080

http://127.0.0.1:8080
でアクセスします。

ローカルOS環境以外(他の端末)からアクセスする場合はこの端末のIPアドレスに置き換えてアクセスすることができます。
Webサーバを終了するにはCtrl+cでwebサーバを閉じます。

yamapan test page

  • 参考までにpython2系の場合はpython -m SimpleHTTPServer が同様の機能を果たします。
  • --bind オプション
    --bind localhost(またはIPアドレス)を引数にした場合にはローカルOS環境内からしかアクセスすることができません。

例:)

python3  -m http.server 8080 --bind localhost
python3  -m http.server 8080 --bind 127.0.0.1

参考画面ショット

  • Wndows 環境での作業イメージ
  • Ubuntu 環境での作業イメージ

80/443ポートで立ち上げたい

また、一般ユーザー権限では 80/443ポートでのWebサーバ立ち上げた場合、以下のように Permission Error になります。

しかしmroot 権限では 80 /443 ポートでWebサーバを立ち上げることが可能です

例:)

sudo python3  -m http.server 80

Curlしてみる

Windows  環境での実施イメージ

curl -I localhost:8080
curl localhost:8080

強制終了する

下記を参考にしていただければ幸いです。

[Linux]特定のポートを使ってるプロセスを特定してkillする | やまぶろ!(YAMA-BLOG!) (yamapan.tokyo)

参考

書くきっかけや参考にしたWebサイトなど。

pythonでローカルwebサーバを立ち上げる #Python - Qiita

127.0.0.1とlocalhostと0.0.0.0の違い #Network - Qiita

Azure Gateway Load Balancer (Preview) を試す (zenn.dev)

以上です!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする