こんにちはやまぱんです。
検証のためなどに簡易Webサーバを立てたいことがあると思います。
簡易Webサーバを立てる方法はいくつかありますが、最も簡単で汎用性が高いと思うpythonを作った方法について今回は説明します。
こんな感じの簡易Webサーバを立ててみます。
Contents
前提
- 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サーバを閉じます。
- 参考までに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)
以上です!