现在,我想在Google Cloud上使用Compute Engine运行Apache网络服务器。 为了做到这一点,在创建Linux VM之后,我安装了Apache。
但是,我收到了"连接被拒绝"错误,尽管我使用了计算引擎建议的外部 IP。
请告诉我如何运行 Apache Web 服务器。
具体来说,我在创建 Linux VM 并单击 SSH 后运行以下命令来安装 Apache。
$ sudo yum -y update
$ sudo -i
# timedatectl set-timezone Asia/Tokyo
# yum -y install httpd
# httpd -v
Server version: Apache/2.4.6 (CentOS)
# systemctl start httpd
# systemctl enable httpd
但是,在上面的Google控制台上运行这些命令并单击外部IP后,我无法运行Apache。
除此之外,我已经检查了计算引擎中的指南,以确保我的 VM 实例具有正确的标记并且存在正确的防火墙规则。
另外,I could not run Apache
意味着下面的两个屏幕截图。 即使我单击虚拟机实例上的外部 IP,我的 Chrome 浏览器也会显示ERR_CONNECTION_REFUSED。
图像description_1
图像description_2
而且,如果我运行sudo service httpd status
,谷歌控制台会显示下面的"image_description_3"。
图像description_3
谢谢。
首先,检查 Apache HTTP 服务器的状态运行以下命令:
"SystemCTL Status HTTPD">
如果 Apache HTTP 服务器处于非活动状态,请运行以下命令:
"SystemCTL Start HTTPD">
其次,确保您设置了 GCP 防火墙。您可以参考此 GCP 文档,了解如何在云外壳中创建防火墙规则或运行下面的 gcloud 命令:
"gcloud compute --project=PROJECT_ID firewall-rules create apache-http --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0">
*将PROJECT_ID替换为project_id
最后,如果在 VM 实例(操作系统级别)中配置了防火墙,请确保具有 http 的开放端口。
要检查防火墙,请运行以下命令:
"系统CTL状态防火墙">
要在 firewalld 中列出打开的端口,请运行以下命令:
"防火墙-cmd --区域=公共 --全部列表">
要将 http 添加到防火墙,请运行以下命令:
"firewall-cmd --zone=public --add-service=http">
您可以参考此文档 关于 firewalld
设置完所有内容后,请尝试再次检查 VM 实例的外部 IP 地址。
将虚拟机实例建议的外部 IP 复制并粘贴到浏览器的地址栏中,然后按回车键。
然后你会看到像这样的Apache的默认屏幕。
在此处输入图像描述
乍一看,您似乎应该直接单击外部IP。但是,据我所知,这种方式行不通。