我在 No-IP 上注册了一个 ddns 子域:example.ddns.net
我将 No-IP 配置为映射到我的路由器的 IP,该 IP 将端口转发到我的 NGINX Web 服务器。我想拥有一个单独的 Web 服务器,我托管在web1.example.ddns.net
该服务器上指向/var/www/web1
. 我不知道的是如何告诉 NGINX 指向/var/www/web1
何时从web1.example.ddns.net
. 谁能给我详细解释如何配置我的服务器?
下面是我example.ddns.net
对此配置的配置位于/etc/nginx/sites-available/
有一个链接到/etc/nginx/sites-enabled
.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/example.ddns.net;
server_name example.ddns.net;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
下面是我web1.example.ddns.net
对此配置的配置位于/etc/nginx/sites-available/
有一个链接到/etc/nginx/sites-enabled
.
server {
listen 80;
listen [::]:80;
root /var/www/web1.example.ddns.net;
server_name web1.example.ddns.net;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
这些是我更改的唯一文件。以下 NGINX 服务器托管在 Ubuntu 服务器上,我通过 ssh 访问服务器并通过单独的计算机访问网页。任何人都可以就如何解决这个问题给出一些说明吗?
以下答案是相当基本的。所以,如果我复习你已经知道的任何事情,请原谅我。=)
作为提醒,如果你还没有这样做,你需要做前。
web1.example.ddns.net
使用 No-IP 并将其指向您的服务器。否则,服务器配置将无关紧要,因为没有人能够通过该地址联系服务器。您真正需要的只是基本的服务器块。借鉴 NGINX 默认示例:
前任。例子.ddns.net
前任。web1.example.ddns.net
基本说明
对于 Ubuntu,您应该将这些服务器块放在适当的
sites-available
目录(例如/etc/nginx/sites-available/
)下,例如example.ddns.net
和web1.example.ddns.net
.创建到
sites-enabled
(例如/etc/nginx/sites-enabled/
)的相关符号链接,例如:或通过您的操作系统推荐的任何方法。
按照评论中的建议运行
nginx -t
(如 ex.sudo nginx -t
),以确保 NGINX 没有遇到任何语法错误或其他问题。用 ex 重启 NGINX。
sudo systemctl restart nginx
.笔记
上面的块丢弃了 IPv6(这可能不是测试所必需的)。
这些示例都没有使用
default_server
.每个相应
root
的条目都放置在一个location
块中(即网站根目录/
)。上面的第二个服务器块
/var/www/web1
用作root
for/
(而不是web1.example.ddns.net
),因为这是您最初在问题中指定的内容。在任何情况下,需要明确的是,root
需要匹配物理文件系统上的任何目录结构。也就是说,它不必镜像您的server_name
.example.ddns.net
和web1.example.ddns.net
。第一个服务器块仍在使用
/var/www/example.ddns.net
,因此请确保这是您存储文件的正确路径example.ddns.net
。一般来说,在对服务器进行更改后,清除浏览器缓存通常是一个明智的步骤,这样您的浏览器就不会将旧数据交还给您。