标签: webserver

DNS 服务器如何工作?

我知道域名由 DNS 服务器解析为 IP 地址,然后用于访问请求的服务器。我有点尴尬,因为我不知道它是如何工作的一些细节。

  • 为了让我的计算机要求 DNS 服务解析域,我的计算机必须知道 DNS 服务器。我从来没有明确告诉我的计算机任何 DNS 服务器,那么它如何知道它应该使用哪个 DNS 服务器?是 ISP 以某种方式将此信息推送到我的计算机吗?

  • 就此而言,这些 DNS 服务器位于何处?我的 ISP 是否有一些 DNS 服务器在某个地方运行,供其(ISP 的)所有客户使用?

  • 我的计算机使用的 DNS 服务器必须知道所有域才能解析它们,它的记录如何更新/维护?

  • 是否有一些中央实体/注册机构/... 为发生的 DNS 服务器更改提供信息?

  • 如果我在某处订购域名,卖家必须在 IP 地址与其出售给我的域名之间建立连接。如何更新所有 DNS 服务器以了解此链接?换句话说,卖家采取什么行动来通知“互联网”这个域名现在指向哪里?

我知道这看起来像是一堆问题,但我认为它们只是同一个故事的不同方面。有人能告诉我这一切是如何协同工作的吗?

networking dns internet ip webserver

16
推荐指数
1
解决办法
6403
查看次数

单个服务器可以与多个域相关联吗?

如果我拥有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

domain website webserver

16
推荐指数
2
解决办法
2万
查看次数

Nginx:从给定目录中提供静态文件 - 一级太深

我对 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)

有没有人知道我如何处理这些静态内容?

rewrite webserver nginx

14
推荐指数
1
解决办法
3万
查看次数

如何浏览允许目录浏览但具有默认页面的网站?

有一个允许目录浏览的网站;我肯定知道这一点,因为我可以浏览没有默认页面的目录。

有一个我想浏览的目录,但它一个默认页面,因此如果我在浏览器中输入 URL,或者如果我在浏览其上方的目录时单击该目录(如上所述),则会显示该页面,允许浏览)。

如何要求 Web 服务器向我发送目录列表而不是默认页面?

我目前正在使用 Internet Explorer,但如果 IE 不能胜任该任务,我不介意使用其他浏览器。

browser website webserver directory-listing

13
推荐指数
1
解决办法
8万
查看次数

如何将某个域名的 HTTP 请求发送到特定的 IP 地址?

出于测试目的,是否可以绕过 DNS 并向特定 IP 地址发送针对某个域名的 HTTP 请求?

例如,假设您要example.com在服务器上构建网站1.1.1.1

如果不更新域的实际 DNS 记录(例如通过注册商或 DNS 提供商)或在本地摆弄 DNS(例如更新主机文件),您如何测试如何1.1.1.1响应 HTTP 请求example.com

dns http webserver

13
推荐指数
2
解决办法
3万
查看次数

将文本文件的内容作为命令提供给 telnet

使用该命令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.txttelnet docs.python.org 80


编辑:

很高兴知道;如果使用HEAD代替,除了消息正文之外GET,您将获得与执行GET请求相同的响应。
因此,HEAD如果您只想检查 HTTP 标头,请使用。(即,响应的内容不会使您的 shell 输出混乱。)

linux telnet shell http webserver

12
推荐指数
2
解决办法
3万
查看次数

如何允许网络上的其他计算机访问我的虚拟 Web 服务器?

我使用 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

debian virtualbox webserver lighttpd debian-squeeze

11
推荐指数
2
解决办法
6万
查看次数

UFW Deny 没有真正起作用

我尝试使用以下命令阻止来自我的服务器的 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 仍然可以访问我的服务器,它没有断开连接。会发生什么?

networking webserver

11
推荐指数
1
解决办法
4829
查看次数

Virtualbox:如何从主机操作系统访问来宾操作系统上的 Web 服务器?

经过大量的 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)

centos virtualbox routing webserver ubuntu

10
推荐指数
1
解决办法
2万
查看次数

使用始终在线的笔记本电脑作为服务器的影响

我认为在一般的 Web 和超级用户上都会有很多关于此的信息,但令我惊讶的是,我无法找到有关使用笔记本电脑作为服务器的这些问题的直接答案。

我收到了一台旧的 iBook G4,我希望将它用作我运行的基于 Web 和 SMS 的系统的服务器(它将在 Debian Linux 中运行)。然而,我对以下几点感到困惑:

  • 如果笔记本电脑使用交流电源 24/7 并且还有电池(以在断电期间保持运行),电池会损坏吗?我无法从网上找到的各种来源中得到明确的答案,尽管此处此 SuperUser 问题中的信息暗示这不是问题,除非是搞砸了数字校准。但是,如果笔记本电脑也是一天 24 小时运行,我不确定这是否属实(该信息似乎与一直在充电但不一定一直在运行的笔记本电脑有关)。

  • 正如一些人警告的那样,过热显然是一种潜在风险。如果防止过热,笔记本电脑硬件连续运行是否还有其他风险?

  • 总而言之,如果我这样做一两年,然后尝试将笔记本电脑交给其他人作为普通机器使用,那么它的功能是否足以让他们这样做?或者我是否应该计划将此用作服务器,假设它会 1)要么完全死亡,要么 2)在长时间使用后作为笔记本电脑变得毫无用处?

编辑:感谢移除电池的建议,但这实际上会破坏使用笔记本电脑的主要优势(目前该系统在基于 GoFlex Home ARM 的小型计算机上运行,​​但我住在一个经常断电的地区,并且即使系统在 UPS 上,它也会关闭很多)。所以我的问题适用于电池在系统中的情况。

laptop battery home-server webserver

10
推荐指数
1
解决办法
3万
查看次数