Я зарегистрировал поддомен ddns на No-IP: example.ddns.net
Я настроил No-IP для сопоставления с IP моего маршрутизатора, который перенаправляет порт на мой веб-сервер NGINX. Я хочу иметь отдельный веб-сервер, размещенный на котором, 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
Следующий ответ довольно прост. Так что, пожалуйста, простите меня, если я повторю то, что вы уже знаете. =)
Я зарегистрировал поддомен DDNS на No-IP:
example.ddns.net
. [...] Я хочу иметь отдельный веб-сервер, на котором я размещаюсь иweb1.example.ddns.net
который указывает на/var/www/web1
.
В качестве предупреждения, если вы еще этого не сделали, вам нужно сделать ex. web1.example.ddns.net
с No-IP и указать его на вашем сервере. В противном случае конфигурация сервера не будет иметь значения, так как никто не сможет связаться с сервером по этому адресу.
Чего я не знаю, так это как заставить NGINX указывать на
/var/www/web1
при вызове из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/
или любым другим способом, рекомендуемым вашей ОС.
Запустите
nginx -t
(например,sudo nginx -t
), как предложено в комментариях, чтобы убедиться, что NGINX не обнаружит никаких синтаксических ошибок или других проблем.Перезапустите NGINX с помощью ex.
sudo systemctl restart nginx
.
Примечания
Вышеуказанные блоки отбрасывают IPv6 (вероятно, это не понадобится для тестирования).
Ни в одном из этих примеров не используется
default_server
.Каждая соответствующая
root
запись помещается вlocation
блок (т.е. в корень веб-сайта/
).Второй блок сервера выше использует
/var/www/web1
какroot
for/
(а неweb1.example.ddns.net
), поскольку это то, что вы изначально указали в своем вопросе. В любом случае, чтобы быть ясным,root
необходимо соответствовать любой структуре каталогов, которая есть в вашей физической файловой системе. То есть, он не должен отражать вашserver_name
, если вы на самом деле не создали каталоги (или что-то подобное) с именами ex.example.ddns.net
иweb1.example.ddns.net
.Первый блок сервера по-прежнему использует
/var/www/example.ddns.net
, поэтому убедитесь, что это правильный путь к месту хранения файлов дляexample.ddns.net
.В целом, после внесения изменений на сервер, как правило, разумным шагом будет очистить кэш браузера, чтобы браузер не возвращал вам старые данные.