No-IP に ddns サブドメインを登録しました。No example.ddns.net
-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 経由でサーバーにアクセスし、別のコンピューターから Web ページにアクセスしています。この問題を解決する方法について、どなたか説明していただけますか?
答え1
以下の回答はかなり基本的なものです。すでにご存知の内容について重複してもご容赦ください。=)
No-IP に DDNS サブドメインを登録しました: 。 [...]を指す
example.ddns.net
別の Web サーバーをホストしたいと考えています。web1.example.ddns.net
/var/www/web1
注意:まだ行っていない場合は、ex. をweb1.example.ddns.net
No-IP で作成し、サーバーにポイントする必要があります。そうしないと、そのアドレス経由では誰もサーバーに接続できないため、サーバー構成は重要ではなくなります。
/var/www/web1
私が知らないのは、から呼び出されたときにNGINX に をポイントするように指示する方法ですweb1.example.ddns.net
。
本当に必要なのは基本的なサーバー ブロックだけです。NGINX のデフォルトの例から引用します。
例: example.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/
または、OS で推奨されている方法を使用します。
コメントで提案されているように
nginx -t
(例: )を実行し、NGINX で構文エラーやその他の問題が発生していないことを確認します。sudo nginx -t
例: で NGINX を再起動します
sudo systemctl restart nginx
。
ノート
上記のブロックは IPv6 をドロップします (これはテストではおそらく必要ないはずです)。
どちらの例でも は使用されません
default_server
。それぞれの
root
エントリはlocation
ブロック(つまり、Web サイトのルート/
)内に配置されます。上記の 2 番目のサーバー ブロックでは、質問で最初に指定した が であるため、の
/var/www/web1
としてを使用します( ではありません)。いずれにしても、明確にするために、 は物理ファイル システム上のディレクトリ構造と一致する必要があります。つまり、たとえばや というディレクトリ (または同様のもの) を実際に作成していない限り、をミラーリングする必要はありません。root
/
web1.example.ddns.net
root
server_name
example.ddns.net
web1.example.ddns.net
最初のサーバー ブロックは引き続き を使用する
/var/www/example.ddns.net
ため、 のファイルを保存している場所への正しいパスであることを確認してくださいexample.ddns.net
。一般的に、サーバーに変更を加えた後は、ブラウザが古いデータを返さないようにブラウザのキャッシュをクリアするのが賢明です。