我真的很困惑如何将我的 Apache2 网络服务器公开。我已经设置好了一切,当我输入时,localhost:80
它会正确显示。但是,我需要非常清晰和详细的说明来说明如何将其公开!并且还要使用它的别名,我将其设置为 pcpcpc12.com
[编辑]
输出 /var/log/apache2/access.log
127.0.0.1 - - [16/Mar/2016:20:04:23 +0000] "GET / HTTP/1.1" 200 3594 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:04:23 +0000] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3688 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:04:24 +0000] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:04:24 +0000] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:10:34 +0000] "GET / HTTP/1.1" 200 661 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:10:34 +0000] "GET /icons/blank.gif HTTP/1.1" 200 430 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:10:34 +0000] "GET /icons/folder.gif HTTP/1.1" 200 507 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:10:40 +0000] "GET /pcpcpc12.com/ HTTP/1.1" 200 3594 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:11:31 +0000] "GET /pcpcpc12.com/ HTTP/1.1" 200 732 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:11:31 +0000] "GET /icons/back.gif HTTP/1.1" 200 498 "http://localhost/pcpcpc12.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:11:31 +0000] "GET /icons/blank.gif HTTP/1.1" 304 178 "http://localhost/pcpcpc12.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:11:31 +0000] "GET /icons/folder.gif HTTP/1.1" 304 178 "http://localhost/pcpcpc12.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:11:42 +0000] "GET /pcpcpc12.com/public_html/ HTTP/1.1" 200 280 "http://localhost/pcpcpc12.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:14:26 +0000] "GET /pcpcpc12.com/ HTTP/1.1" 200 734 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:14:26 +0000] "GET /icons/blank.gif HTTP/1.1" 304 178 "http://localhost/pcpcpc12.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:14:26 +0000] "GET /icons/back.gif HTTP/1.1" 304 178 "http://localhost/pcpcpc12.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:14:26 +0000] "GET /icons/folder.gif HTTP/1.1" 304 178 "http://localhost/pcpcpc12.com/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:14:44 +0000] "GET / HTTP/1.1" 200 280 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:51:41 +0000] "GET / HTTP/1.1" 200 548 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:51:42 +0000] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:51:42 +0000] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
127.0.0.1 - - [16/Mar/2016:20:51:45 +0000] "GET /pcpcpc12.com/public_html/index_two.html HTTP/1.1" 200 505 "http://localhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
输出error.log
[Wed Mar 16 19:18:41.713986 2016] [mpm_event:notice] [pid 4282:tid 140223239657344] AH00489: Apache/2.4.7 (Ubuntu) configured -- resuming normal operations
[Wed Mar 16 19:18:41.714259 2016] [core:notice] [pid 4282:tid 140223239657344] AH00094: Command line: '/usr/sbin/apache2'
[Tue Jan 01 00:00:48.990306 2013] [mpm_event:notice] [pid 1316:tid 140375846848384] AH00489: Apache/2.4.7 (Ubuntu) configured -- resuming normal operations
[Tue Jan 01 00:00:49.019771 2013] [core:notice] [pid 1316:tid 140375846848384] AH00094: Command line: '/usr/sbin/apache2'
答案1
当您“将别名设置为 pcpcpc12.com”时,其他人将无法查看它,除非您创建公共 DNS 记录。这需要知道您的民众IP 地址。你可以直接谷歌搜索“我的公共 IP 是什么”
如果你拥有 pcpcpc12.com,通过 godaddy 或其他人注册,那么他们应该有一个界面供你创建 A 主机记录,使用你的民众IP 就是这个。
如果您不拥有该域名,那么其他人仍然可以通过输入您的民众例如,浏览器中的 IP 地址http://192.168.0.1/
(您的公共 IP 不会以 192.168 开头)
由于您在评论中提到您正在使用 TalkTalk 家庭网关路由器,因此我假设您使用的是住宅互联网连接。具体取决于您的 ISP,例如 Cox(我的心爱ISP),他们可能会选择阻止你的公共 http 端口作为一种激励措施,让您升级到昂贵的商业互联网连接。
你可以通过离开家去其他网络的某个地方并运行网络地图来检查。安装该实用程序sudo apt-get install nmap
,然后运行命令nmap -Pn -p 80 192.168.0.1
并将 192.168.0.1 IP 更改为民众从第一步获取 IP。如果幸运的话,你会得到这样的开放扫描:
Starting Nmap 6.40 ( http://nmap.org ) at 2016-03-22 22:17 CDT
Nmap scan report for 192.168.0.1
Host is up (0.0028s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
否则,您将得到如下过滤扫描结果:
Starting Nmap 6.40 ( http://nmap.org ) at 2016-03-22 22:19 CDT
Nmap scan report for 192.168.0.1
Host is up.
PORT STATE SERVICE
80/tcp filtered http
Nmap done: 1 IP address (1 host up) scanned in 2.58 seconds
在这种情况下,其他人仍然可以通过非阻塞端口访问您。8080 是一个流行的选择。您需要调整路由器中的设置以将传入的外部端口 8080 映射到您的内部端口 80内部的服务器的 IP。您只有一个公共 IP,但网络上的每个设备都有不同的内部 IP。内部网络 IP 通常以 192.168 开头。或 10。您可以找到您的内部的通过运行终端命令获取 IPifconfig
正确设置后,全世界都可以访问您的网站http://192.168.0.1:8080
,再次确保使用您的民众IP 而不是 192.168.
答案2
作为一名 Linux 新手,我也不知道如何在我的 VPS 上公开 Apache 网站。这里有一个关于如何公开 Apache 网站的完整教程,应该可以回答你的问题,也希望对未来的新手有所帮助。
先决条件
本教程假设您已具备以下内容:
- 来自 Bluehost 或 AWS 等主机的 VPS(无论什么)
- 公共域名的所有权
就我的情况而言,我有一个 OVH.com 的 Linux VPS,并且我拥有一个 name.com 的域名。请注意,这是 2 家不同的公司;因此是两台不同的服务器。
详细步骤
在 Apache2 上建立网站
首先在您的 VPS 上设置您的网站。
笔记:本教程的这一部分不涉及配置您的 Linux VPS。我假设您已准备好投入生产。
为您的网站创建目录
打开终端并为您的网站创建一个目录。将
domain.com
以下所有步骤替换为您的网站名称:mkdir -p /var/www/domain.com/public_html # Make folder writable to avoid issues further down the road: chmod -R 755 /var/www
创建用于测试的索引页
gedit /var/www/domain.com/public_html/index.html
并添加类似的内容
testing for domain.com
。笔记:如果您在打开时遇到连接问题
gedit
,请打开其他终端并以普通用户身份运行命令xhost +
。之后,尝试gedit
再次运行。有关此问题的更多信息,请参阅这里。将默认配置复制到新文件:
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
编辑新的配置文件
gedit /etc/apache2/sites-available/domain.com.conf
添加/编辑以下内容:
<VirtualHost *:80> ServerAdmin [email protected] ServerName domain.com ServerAlias www.domain.com DocumentRoot /var/www/domain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
重要的:这
ServerAlias
是您希望人们用来在互联网上访问您的 Apache 网站的名称。启用新的配置文件
默认情况下,Apache 设置为读取
000-default.conf
文件。但是,在上一步中,我们创建了一个新的配置文件。因此,我们需要禁用默认设置并启用我们创建的新配置文件。a2dissite 000-default.conf a2ensite domain.com.conf
将网站公开
为了使您的 Apache 网站公开,我们需要配置 DNS 服务器。
登录您的 VPS
登录您的 VPS 帐户。我使用 ovh.com 的 Linux VPS,但您的可能不同。登录您的帐户并记下通常在 IPv4 设置下找到的 IP 地址。复制到剪贴板。
登录您的 cpanel
就我的情况而言,我向两家不同的公司付费。一家负责 VPS,另一家负责域名。这是因为我使用多年的 VPS 提供商不销售域名,只销售私人服务器。如果您的 VPS 和域名都来自同一家提供商,则可以跳过此步骤。
创建 DNS
在您的域名所在的帐户中,单击“管理 DNS”或类似内容。单击“添加新记录”。这应该类似于下面的照片:
填写字段:
主持人: 使用
ServerAlias
上面的设置。回答:输入或粘贴我们之前复制的 VPS IP。
保存记录
瞧!在线访问您的 Apache 网站,您应该会看到testing for domain.com
或任何您编写的用于测试页面的内容。
下一步:Apache 的 SSL
此时,您的域名将为 HTTP。这将使您的 Apache 网站不安全,并在浏览器中引起警告。我们当然不想因此吓跑您的访客!
为了提供 SSL/TLS (HTTPS),我建议Certbot。
我不会详细介绍如何操作,但请访问他们的网站。教程非常简单。