无法让端口 8008 在 AWS Apache Server 上工作

问题描述 投票:0回答:2

标题确实说明了这一点。我的聆听陈述:

Listen 80
Listen 8080
Listen 8081
Listen 8008

我的虚拟主机标签:

<VirtualHost *:80>
DocumentRoot "/var/www/directory2"
</VirtualHost>

<VirtualHost *:8080>
DocumentRoot "/var/www/directory2"
</VirtualHost>

<VirtualHost *:8081>
DocumentRoot "/var/www/directory3"
</VirtualHost>

<VirtualHost *:8008>
DocumentRoot "/var/www/directory4"
</VirtualHost>

我还在我的 AWS 实例上启用了所有这些端口。 访问前面的每个端口都可以正常工作,但 8008 却不行。我不太确定为什么,因为它被列为 HTTP 备用端口,就像 8080 和 8081 一样。有人知道问题是什么吗?或者知道我可以使用的不同端口?

apache amazon-ec2 port
2个回答
1
投票

您还需要确保为实例提供的安全组允许访问这些端口。

例如;在 AWS 控制台和 EC2 部分。选择左侧导航栏“网络和安全”标题下的“安全组”。然后找到您的安全组。

选择“入站”选项卡,并确保您已允许从适合您要求的 IP 地址范围访问每个端口。如果您希望它可以通过互联网访问,来源应该是:

0.0.0.0/0

您可能在 VPC 中运行,在这种情况下,设置会稍微复杂一些,因为您需要确保可以从外部访问该实例。我建议阅读 AWS 文档,了解如何设置具有单个公有子网的 VPC。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario1.html


0
投票

端口 8008 可以由 AWS 保留

使用具有公共 IP 地址且仅打开端口 443 的 EC2 实例对此进行了测试。快速端口扫描显示:

8008/tcp open   http

使用 curl 访问该端口会返回响应:

$ curl -v http://aws-ec2-public-ip:8008/
*   Trying n.n.n.n:8008...
* Connected to aws-ec2-public-ip (n.n.n.n) port 8008 (#0)
> GET / HTTP/1.1
> Host: aws-ec2-public-ip:8008
> User-Agent: curl/7.88.1
> Accept: */*
>
< HTTP/1.1 302 Found
< Location: https://aws-ec2-public-ip:8015/
< Connection: close
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< Content-Security-Policy: frame-ancestors 'self'
<
* Closing connection 0

端口 8008 响应 HTTP 302 重定向(到端口 8015)的原因尚不清楚,但这显然发生在弹性 IP 级别,因为连接的主机没有任何内容侦听该端口,安全组也不允许端口 8008 流量。它可能是(预防性)安全缓解措施,或 AWS Snowball 的预留(但我的测试场景没有它,所以它可能是一揽子预留):

来自 docs.aws.amazon.com

8008 (HTTP) TCP EC2 HTTP 端点

无论如何,如果弹性 IP 保留了该端口,那么让 EC2 实例在端口 8008 上响应可能是不可能的。 AWS 文档中似乎只有一次提及,因此这很大程度上是一种猜测,但针对公共 IP 的curl 测试是可重复的。

© www.soinside.com 2019 - 2024. All rights reserved.