80.md
root@localhost:~# cat 80.md

Localhost:80 Webポート

# 定義

ポート80は、インターネット割り当て番号機関(IANA)によってHTTP(ハイパーテキスト転送プロトコル)の標準ポートとして定義されています。ワールドワイドウェブの初期からWebトラフィックのデフォルトポートとして使用されてきました。ブラウザがポートを指定せずにHTTPリクエストを行う際、自動的にポート80を使用します。これにより、Web開発において最も重要なポートとなり、インターネット通信の基盤となっています。

# Services and Software That Use Port 80

## Webサーバー

Apache HTTP Server
最も広く使用されているWebサーバーソフトウェアで、デフォルトでポート80でHTTPトラフィックを処理します。
Nginx
高性能Webサーバーおよびリバースプロキシで、通常ポート80でリスニングするように設定されます。
Microsoft IIS
Windows ベースのWebサーバーで、デフォルトでポート80を使用してHTTP通信を行います。
LiteSpeed
パフォーマンスで知られる商用Webサーバーで、通常ポート80で動作します。

## 開発サーバー

Node.js Express
本番環境にデプロイする際、Expressアプリケーションは通常ポート80で動作します。
Python WSGI Servers
Gunicorn、uWSGI、その他のWSGIサーバーは本番環境でポート80用に設定されることが多いです。
Java Application Servers
Tomcat、Jetty、その他のJavaサーバーは本番デプロイメントでポート80をよく使用します。

## コンテンツ管理システム

WordPress
ほとんどのWordPressインストールは、ApacheまたはNginx経由でポート80で動作します。
Drupal
PHPベースのCMSで、通常ポート80でコンテンツを提供します。
Joomla
人気のCMSプラットフォームで、Webトラフィック用にポート80を使用します。

## その他のサービス

Reverse Proxies
ロードバランサーとリバースプロキシは、トラフィックを分散するためにポート80でリスニングすることがよくあります。
CDN Services
コンテンツ配信ネットワークは、HTTPコンテンツ配信にポート80を使用します。
Web APIs
REST APIとWebサービスは、一般的にポート80でエンドポイントを公開します。

# Frequently Asked Questions

Q: localhost:80にアクセスするにはどうすればよいですか?

A:

ブラウザで単純にhttp://localhostにアクセスしてください - ポート80はHTTPのデフォルトポートなので、指定する必要はありません。最初にWebサーバーが動作していることを確認してください。

Q: なぜポート80がHTTPに使用されるのですか?

A:

ポート80は、Webの初期にIANA(インターネット割り当て番号機関)によって標準HTTPポートとして指定されました。それがWebトラフィックの一般的なデフォルトになりました。

Q: ポート80と8080の違いは何ですか?

A:

ポート80はroot権限が必要な標準HTTPポートですが、8080は特別な権限を必要としない開発でよく使用される代替ポートです。ポート80は本番用、8080は開発用です。

Q: なぜポート80にroot/管理者権限が必要なのですか?

A:

1024未満のポート(80を含む)は、システムサービス用に予約された「特権ポート」です。このセキュリティ対策により、一般ユーザーがシステムサービスになりすます可能性のあるサービスを実行することを防ぎます。

Q: ポート80と443のどちらを使用すべきですか?

A:

HTTPS(セキュア)トラフィックにはポート443を、HTTPにはポート80を使用します。現代のベストプラクティスは、セキュリティのためにポート80トラフィックを443にリダイレクトすることです。ポート80は主に初期リクエストとリダイレクトに使用されます。

Q: localhost:80を外部からアクセス可能にするにはどうすればよいですか?

A:

Webサーバーを127.0.0.1:80ではなく0.0.0.0:80にバインドするように設定し、ファイアウォールでポート80を開き、ルーターがポート80をマシンに転送するように設定してください。

Q: ポート80で複数のWebサイトを実行できますか?

A:

はい、バーチャルホスト(Apache)またはサーバーブロック(Nginx)を使用して可能です。Webサーバーは、ドメイン名に基づいてリクエストを異なるWebサイトにルーティングし、すべてポート80を使用します。

Q: Dockerでポート80を使用するにはどうすればよいですか?

A:

「docker run -p 80:8080 myapp」のようなポートマッピングを使用して、ホストポート80をコンテナポート8080にマップします。コンテナは任意の内部ポートを使用しながら、ポート80で公開できます。

# How to Use Port 80

1.

ポート80の可用性を確認

ポート80が使用可能で、他のサービスによって使用されていないことを確認します。ポート80は通常、管理者/root権限が必要です。

bash
sudo netstat -tulpn | grep :80
2.

Root権限でWebサーバーを起動

ほとんどのWebサーバーは、ポート80にバインドするためにroot/管理者権限が必要です。適切な権限でWebサーバーを起動してください。

bash
sudo nginx -t && sudo nginx
3.

ファイアウォールルールの設定

Webトラフィック用にポート80での着信接続をファイアウォールが許可していることを確認してください。

bash
sudo ufw allow 80/tcp
4.

HTTP接続のテスト

http://localhostにアクセスして、Webサーバーがポート80で応答していることを確認します(ポート80は暗黙的です)。

bash
curl http://localhost
5.

バーチャルホスト/サーバーブロックの設定

ポート80で複数のWebサイトを提供するために、バーチャルホスト(Apache)またはサーバーブロック(Nginx)を設定します。

# Common Problems

## HIGH Severity Issues

ポート80のアクセス権限拒否

root/管理者権限が必要なため、ポート80にバインドできません。ほとんどのシステムでは1024未満のポートへのアクセスが制限されています。

ポート80が既に使用中

別のWebサーバーまたはサービスが既にポート80を使用しており、アプリケーションの起動が妨げられています。

## MEDIUM Severity Issues

ファイアウォールがポート80をブロック

ファイアウォールルールがポート80での着信接続をブロックしており、外部ソースからWebサイトにアクセスできません。

DNS解決の問題

サービスがポート80で動作していても、ドメイン名がサーバーのIPアドレスに解決されません。

## LOW Severity Issues

SSL/HTTPSリダイレクトの問題

HTTP(ポート80)トラフィックをHTTPS(ポート443)にリダイレクトする際の問題で、混合コンテンツやリダイレクトループが発生します。

# Troubleshooting Solutions

## Linux Platform

ポート80の権限問題を解決

For: ポート80のアクセス権限拒否

Steps:

  1. root/管理者権限でWebサーバーを実行する
  2. 代替案:authbindまたはsetcapを使用して、非root ユーザーにポート80へのアクセスを許可する
  3. 非特権ポートを使用したリバースプロキシ設定を検討する
linux
sudo systemctl start nginx

ポート80の権限問題を解決

For: ポート80のアクセス権限拒否

Steps:

  1. root/管理者権限でWebサーバーを実行する
  2. 代替案:authbindまたはsetcapを使用して、非root ユーザーにポート80へのアクセスを許可する
  3. 非特権ポートを使用したリバースプロキシ設定を検討する
linux
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/node

ポート80の競合を解決

For: ポート80が既に使用中

Steps:

  1. ポート80を使用しているサービスを特定する
  2. 不要な場合は競合しているサービスを停止する
  3. Webサーバーを一時的に別のポートを使用するように設定する
  4. ポート80トラフィックを処理するためにリバースプロキシを使用する
linux
sudo lsof -i :80

## Windows Platform

ポート80の権限問題を解決

For: ポート80のアクセス権限拒否

Steps:

  1. root/管理者権限でWebサーバーを実行する
  2. 代替案:authbindまたはsetcapを使用して、非root ユーザーにポート80へのアクセスを許可する
  3. 非特権ポートを使用したリバースプロキシ設定を検討する
windows
netsh http add urlacl url=http://+:80/ user=Everyone

ポート80の競合を解決

For: ポート80が既に使用中

Steps:

  1. ポート80を使用しているサービスを特定する
  2. 不要な場合は競合しているサービスを停止する
  3. Webサーバーを一時的に別のポートを使用するように設定する
  4. ポート80トラフィックを処理するためにリバースプロキシを使用する
windows
netstat -ano | findstr :80

## All Platform

ポート80の競合を解決

For: ポート80が既に使用中

Steps:

  1. ポート80を使用しているサービスを特定する
  2. 不要な場合は競合しているサービスを停止する
  3. Webサーバーを一時的に別のポートを使用するように設定する
  4. ポート80トラフィックを処理するためにリバースプロキシを使用する
all
sudo systemctl stop apache2

# まとめ

root@localhost:~# echo "Port 80 Documentation Complete"

それは何ですか: localhost:80 はLocalhost:80は、世界中のWebサーバーで使用される標準HTTPポートです。ポートを指定せずにWebサイトにアクセスすると(http://example.comなど)、自動的にポート80が使用されます。これはすべてのHTTPトラフィックのデフォルトポートであり、Web通信の基盤です。です

誰が使用しているか: Apache HTTP Server, Nginx, Microsoft IIS, LiteSpeed, Node.js Express, Python WSGI Servers, Java Application Servers, WordPress, Drupal, Joomla, Reverse Proxies, CDN Services, Web APIs

アクセスURL: http://localhost:80