我已經在 No-IP 上註冊了一個 ddns 子網域:example.ddns.net
我將 No-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 Server 上,我透過 ssh 存取伺服器並透過單獨的電腦存取網頁。任何人都可以提供一些有關如何解決此問題的說明嗎?
答案1
下面的答案是相當基本的。因此,如果我重複了您已經知道的任何內容,請原諒我。 =)
我已在 No-IP 上註冊了 DDNS 子網域:
example.ddns.net
。 [...] 我想要一個單獨的 Web 伺服器,我在該伺服器上託管web1.example.ddns.net
指向/var/www/web1
.
要注意的是,如果你還沒有這樣做,你需要先做 ex。web1.example.ddns.net
使用 No-IP 並將其指向您的伺服器。否則,伺服器配置並不重要,因為沒有人能夠透過該位址聯繫伺服器。
我不知道的是如何告訴 NGINX
/var/www/web1
在從web1.example.ddns.net
.
您真正需要的只是基本的伺服器區塊。抄襲 NGINX 預設範例:
前任。範例.ddns.net
server {
listen 80;
server_name example.ddns.net;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /var/www/example.ddns.net;
index index.html index.htm;
}
# error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
前任。 web1.example.ddns.net
server {
listen 80;
server_name web1.example.ddns.net;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /var/www/web1;
index index.html index.htm;
}
# error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
基本說明
對於 Ubuntu,您應該將這些伺服器區塊放置在適當的
sites-available
目錄(例如/etc/nginx/sites-available/
)下,例如example.ddns.net
和web1.example.ddns.net
。sites-enabled
建立到(例如)的相關符號鏈接,/etc/nginx/sites-enabled/
例如:sudo ln -s /etc/nginx/sites-available/example.ddns.net /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/web1.example.ddns.net /etc/nginx/sites-enabled/
或透過您的作業系統推薦的任何方法。
按照註釋中的建議運行
nginx -t
(例如sudo nginx -t
),以確保 NGINX 不會遇到任何語法錯誤或其他問題。使用 ex 重新啟動 NGINX。
sudo systemctl restart nginx
。
筆記
上面的區塊丟棄了 IPv6(這對於測試來說可能不是必需的)。
這些範例都沒有使用
default_server
.每個相應的
root
條目都放置在一個location
區塊中(即網站根目錄/
)。上面的第二個伺服器區塊用作
/var/www/web1
forroot
(/
而不是web1.example.ddns.net
),因為這是您最初在問題中指定的內容。無論如何,需要明確的是,root
需要匹配實體檔案系統上的任何目錄結構。也就是說,它不必鏡像您的server_name
,除非您實際上建立了名為 ex 的目錄(或類似目錄)。example.ddns.net
和web1.example.ddns.net
。第一個伺服器區塊仍在使用
/var/www/example.ddns.net
,因此請確保這是儲存檔案的正確路徑example.ddns.net
。一般來說,對伺服器進行更改後,清除瀏覽器快取通常是明智的一步,這樣瀏覽器就不會返回舊資料。