我使用 namecheap 购买了一个域名,为简单起见,我们将其称为 example.com。
我在基于 Debian 的 VPS 上运行 nginx。
我想设置以下配置
var/www/static
但是,我无法使用 nginx 配置子域,或者我需要使用 Namecheaps 控制面板来做些什么?
这是我在 Namecheap 上的配置:
没有配置子域,我应该在这里配置子域吗!?
这是我的 nginx 配置:
server {
root /var/www/blog;
index index.html index.htm;
server_name localhost example.com www.example.com;
location / {
index index.html index.htm;
}
}
server {
root /var/www/static;
index index.html index.htm;
server_name static.example.com www.static.example.com;
location / {
index index.html index.htm;
}
但是,这会导致以下情况:
最佳答案
您必须记住,设置 DNS 和配置 nginx 是完全不同的任务。
我喜欢设置 DNS 的方式是做一个 CNAME
来自 www
和其他子域返回到原始域,如果它们在逻辑上相同,并且托管在同一台服务器上。 (但是,从技术上讲,这是不正确的,因为这意味着您指定所有域都有 MX
记录,以及 TXT
/SPF
记录表明它们可以用于邮件。但没有人真正关心,因此,只要您没有将 TLD 本身作为 CNAME
,事情就应该没问题。)
您没有看到 404
来自 random.example.com
因为第一个 server
成为您的默认服务器。为避免这种情况,您可能需要额外的 server
带有 listen
的上下文指令具有 default_server
参数,这里可以无条件return 404;
对于所有请求。
你最后的原因server
上下文可能无法正常工作可能是由于缺少 listen
指示。拥有相同的 listen
通常会有所帮助。所有服务器之间的指令。
关于nginx - 使用 namecheap 在 nginx 上配置子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975817/