我成功创建了一个apache服务器但我不想通过键入192.168.0.102
来连接它,我想要一个像www.google.com这样的普通网址。我怎样才能做到这一点?我去了httpd.conf并找到了ServerName行,但将它设置为像www.mysite.com这样的东西似乎不起作用。我也尝试使用我的外部IP(https://www.whatismyip.com)作为服务器名称,但它没有连接。它只有在我尝试连接到192.168.0.102或localhost时才有效。我该如何解决这个问题?感谢
答案 0 :(得分:1)
您需要了解三件基本事项。
HTTP允许多个网站托管在同一个IP地址和端口上。客户端使用Host
请求标头告诉服务器它想要获取数据的站点。
ServerName
用作此项的一部分。
...但客户端需要知道如何首先向服务器发送请求。
当客户端向服务器发出请求时,它使用服务器的IP地址,以允许它通过网络(或网络)传递给它。这是地址。
IP地址是数字序列,对人类来说不是非常友好。
DNS将友好名称(如www.example.com
)转换为IP地址。
客户端必须查找名称才能找到IP地址。它通常通过主DNS系统执行此操作,并且为了将您的名称链接到您的IP地址,您需要找到域名注册商并付款。
也可以在专用网络上的本地级别设置DNS,也可以使用hosts文件在计算机级别设置DNS。
服务器的IP地址必须可以从运行客户端的计算机进行路由。
192.168.0.102
是一个私人地址,只能在同一个局域网上访问。要使Internet上的客户端可以访问它,您需要:
答案 1 :(得分:0)
但您有一些选择,例如,如果您想从主机名访问您的计算机,则可以使用动态DNS服务器。
或者您想在一个壮观的域上测试您的代码,您可以将192.168.0.102与域添加到您的hosts文件,然后只有您可以在本地计算机上使用此域。
但是,如果您真的想从本地计算机向Internet提供某些内容,则必须找到DNS服务器服务(如cloudflare),将您的域指向您的公共Internet ip,而不是192.168.0.102。
答案 2 :(得分:0)
配置虚拟主机并将服务器名称设置为所需的域名。之后,Apache将检查请求,并在请求该域名时使用该虚拟主机。为了使其正常工作,该域应指向运行服务器的IP地址。
如果要测试配置是否有效,请编辑/ etc / hosts文件并将该域名添加到127.0.0.1。之后,如果您尝试从浏览器访问该域名,则可以访问该虚拟主机。
此处有更多信息:https://httpd.apache.org/docs/current/vhosts/name-based.html