我知道域名由 DNS 服务器解析为 IP 地址,然后用于访问请求的服务器。我有点尴尬,因为我不知道它是如何工作的一些细节。
为了让我的计算机要求 DNS 服务解析域,我的计算机必须知道 DNS 服务器。我从来没有明确告诉我的计算机任何 DNS 服务器,那么它如何知道它应该使用哪个 DNS 服务器?是 ISP 以某种方式将此信息推送到我的计算机吗?
就此而言,这些 DNS 服务器位于何处?我的 ISP 是否有一些 DNS 服务器在某个地方运行,供其(ISP 的)所有客户使用?
我的计算机使用的 DNS 服务器必须知道所有域才能解析它们,它的记录如何更新/维护?
是否有一些中央实体/注册机构/... 为发生的 DNS 服务器更改提供信息?
如果我在某处订购域名,卖家必须在 IP 地址与其出售给我的域名之间建立连接。如何更新所有 DNS 服务器以了解此链接?换句话说,卖家采取什么行动来通知“互联网”这个域名现在指向哪里?
我知道这看起来像是一堆问题,但我认为它们只是同一个故事的不同方面。有人能告诉我这一切是如何协同工作的吗?
如果我拥有x.x.x.x网络服务器,我可以在x.x.x.x/one和上创建两个单独的站点x.x.x.x/two并为它们提供两个不同的域吗?
在这种情况下,它将如何处理内部链接(例如x.x.x.x/one/foo/page.html)?
我在一些网站上使用 CentOS 7 和 LAMP,以及 WordPress
我对 nginx 配置很陌生。我在一个非常基本的问题上遇到了一些困难。我想在/doc(index.html、一些图像等)上托管一些静态文件。这些文件位于名为 /sites/mysite/proj/doc/ 的目录中。
问题是,使用下面的 nginx 配置,nginx 会尝试查找名为“/sites/mysite/proj/doc/doc”的目录。也许这可以通过将根设置为 /sites/mysite/proj/ 来解决,但我不想潜在地暴露 proj/ 目录中的其他(非静态)资产。由于各种原因,我无法真正将 doc/ 目录从它所在的位置移开。
我认为有一种方法可以使用 Rewrite 规则来解决这种情况,但我并不是真正了解所有部分,因此制定规则有些困难。
rewrite ^/doc/(.*)$ /$1 permanent;
Run Code Online (Sandbox Code Playgroud)
我还包含了一个从 /sites/mysite/htdocs/static/ 目录托管文件的工作示例。
> vim locations.conf
location /static {
root /sites/mysite/htdocs/;
access_log off;
autoindex on;
}
location /doc {
root /sites/mysite/proj/doc/;
access_log on;
autoindex on;
}
2011/11/19 23:49:00 [error] 2314#0: *42 open() "/sites/mysite/proj/doc/doc" failed (2: No such file or directory), client: 100.100.100.100, server: , request: "GET /doc HTTP/1.1", host: "myhost.com"
Run Code Online (Sandbox Code Playgroud)
有没有人知道我如何处理这些静态内容?
有一个允许目录浏览的网站;我肯定知道这一点,因为我可以浏览没有默认页面的目录。
有一个我想浏览的目录,但它有一个默认页面,因此如果我在浏览器中输入 URL,或者如果我在浏览其上方的目录时单击该目录(如上所述),则会显示该页面,允许浏览)。
如何要求 Web 服务器向我发送目录列表而不是默认页面?
我目前正在使用 Internet Explorer,但如果 IE 不能胜任该任务,我不介意使用其他浏览器。
出于测试目的,是否可以绕过 DNS 并向特定 IP 地址发送针对某个域名的 HTTP 请求?
例如,假设您要example.com在服务器上构建网站1.1.1.1。
如果不更新域的实际 DNS 记录(例如通过注册商或 DNS 提供商)或在本地摆弄 DNS(例如更新主机文件),您如何测试如何1.1.1.1响应 HTTP 请求example.com?
使用该命令telnet docs.python.org 80,我可以http://docs.python.org/2/license.html通过键入实际请求对 执行手动 HTTP请求。
现在,我想从文本文件中输入请求,而不是实时输入。
我试过这个:
cat request.txt|telnet docs.python.org 80
请求.txt:
GET /2/license.html HTTP/1.1
Host: docs.python.org
Run Code Online (Sandbox Code Playgroud)
(你必须用一个空行结束文件,否则你会得到一个错误的请求!)
但是与服务器的连接立即关闭。
我应该如何正确地通过管道request.txt到telnet docs.python.org 80?
编辑:
很高兴知道;如果使用HEAD代替,除了消息正文之外GET,您将获得与执行GET请求相同的响应。
因此,HEAD如果您只想检查 HTTP 标头,请使用。(即,响应的内容不会使您的 shell 输出混乱。)
我使用 Windows 7 作为主机操作系统。我在带有 lighttpd 的 VirtualBox 上安装了 Debian 6.0.4。
我可以通过http://localhost在浏览器地址面板中键入我的机器轻松访问 Web 服务器,但是我网络中的其他计算机无法通过键入我的 IP 地址来访问它。
我在 VirtualBox 中使用 NAT 端口转发。我应该怎么做才能使我的网络服务器对我的网络上的每个人都可用?
编辑:
我找到了一个“解决方案”——我必须将访客端口和主机端口设置为不同的端口。但是我仍然有这个问题,即:
服务器在端口 8080 上启动。
Port forwarding : guest port 8080
host port 80
Run Code Online (Sandbox Code Playgroud)
我可以从我的机器上访问服务器
但是我只能通过网络上的其他机器访问服务器 IP:8080
我尝试使用以下命令阻止来自我的服务器的 IP 地址:
sudo ufw deny from 15.15.15.51
Run Code Online (Sandbox Code Playgroud)
我重新启动了服务器并检查了规则:
sudo ufw status -v
Run Code Online (Sandbox Code Playgroud)
哪个返回:
To Action From
-- ------ ----
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
2323/tcp ALLOW Anywhere
Anywhere DENY 15.15.15.51
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
2323/tcp (v6) ALLOW Anywhere (v6)
Run Code Online (Sandbox Code Playgroud)
检查后,IP 仍然可以访问我的服务器,它没有断开连接。会发生什么?
经过大量的 RTFM 和阅读论坛,我仍然遇到问题,需要一些建议。我在 Ubuntu 上使用 Virtualbox 并以访客身份安装了 Centos 服务器。我的问题是我无法从主机操作系统访问来宾操作系统上的 Web 服务器。
以下是详细信息:主机操作系统是 Ubuntu 12.04 LTS(内核 3.2.0-24-generic)64 位。
我使用 Virtualbox 4.1.12。
我从我的无线路由器获取我的 IP 地址:
eth0 Link encap:Ethernet HWaddr 18:03:73:42:3d:ac
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:47 Base address:0xe000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3784 errors:0 dropped:0 overruns:0 frame:0 …Run Code Online (Sandbox Code Playgroud) 我认为在一般的 Web 和超级用户上都会有很多关于此的信息,但令我惊讶的是,我无法找到有关使用笔记本电脑作为服务器的这些问题的直接答案。
我收到了一台旧的 iBook G4,我希望将它用作我运行的基于 Web 和 SMS 的系统的服务器(它将在 Debian Linux 中运行)。然而,我对以下几点感到困惑:
如果笔记本电脑使用交流电源 24/7 并且还有电池(以在断电期间保持运行),电池会损坏吗?我无法从网上找到的各种来源中得到明确的答案,尽管此处和此 SuperUser 问题中的信息暗示这不是问题,除非是搞砸了数字校准。但是,如果笔记本电脑也是一天 24 小时运行,我不确定这是否属实(该信息似乎与一直在充电但不一定一直在运行的笔记本电脑有关)。
正如一些人警告的那样,过热显然是一种潜在风险。如果防止过热,笔记本电脑硬件连续运行是否还有其他风险?
总而言之,如果我这样做一两年,然后尝试将笔记本电脑交给其他人作为普通机器使用,那么它的功能是否足以让他们这样做?或者我是否应该计划将此用作服务器,假设它会 1)要么完全死亡,要么 2)在长时间使用后作为笔记本电脑变得毫无用处?
编辑:感谢移除电池的建议,但这实际上会破坏使用笔记本电脑的主要优势(目前该系统在基于 GoFlex Home ARM 的小型计算机上运行,但我住在一个经常断电的地区,并且即使系统在 UPS 上,它也会关闭很多)。所以我的问题适用于电池在系统中的情况。