. По сути, я хочу сделать локальный домашний сервер общедоступным в Интернете. К сожалению, мой интернет-провайдер использует CGNAT, и чтобы получить общедоступный IP-адрес, мне нужно доплатить (около 50 долларов). Я решил, что дешевле использовать VPS.
Итак, я настроил Wireguard Server в Google Cloud через виртуальную машину Compute Engine под управлением Ubuntu 20.04. Я также настроил клиент Wireguard для своего локального сервера дома и подключил его к серверу Wirequard в Google Cloud. Наконец, я установил еще один клиент Wireguard на своем телефоне Android, подключил его к серверу, и все работает нормально. Когда я нахожусь в wireguard на своем телефоне Android, я вижу свой локальный сервер снаружи (используя мобильные данные для тестирования).
Теперь я хочу сделать локальный домашний сервер общедоступным. У меня есть домен и настроены необходимые записи. Когда я пингую его,он возвращает общедоступный IP-адрес виртуальной машины GCE, что, как я полагаю, означает, что она работает нормально. Затем я установил Nginx на свою виртуальную машину GCE. У меня это работает нормально. Я смог получить доступ к странице Nginx по умолчанию через домен и общедоступный IP-адрес. Затем я изменил конфигурацию по умолчанию, используя следующее, и после этого перезапустил Nginx.
server {
listen 80;
listen [::]:80;
server_name sub.domain.org; #sample only
location / {
proxy_redirect http://10.200.200.2 http://sub.domain.org;
}
}
Мой Wireguard находится в диапазоне IP-адресов 10.200.200.x (не уверен, что это правильный термин), а 10.200.200.2 — это IP-адрес wireguard моего локального домашнего сервера.
Возможно, я не понимал, как работает Nginx, но я ожидал, что через Nginx я смогу публично получить доступ к своему локальному домашнему серверу, просматриваяhttp://sub.domain.org. К сожалению, мне не удалось получить к нему доступ в открытом доступе. Он доступен только при подключении к wireguard.
Есть что-нибудь еще, что мне нужно сделать?
Будем признательны за любой отзыв.
Вам следует прочитать документы ngx_http_proxy_module
по адресуhttp://nginx.org/en/docs/http/ngx_http_proxy_module.html.
Документы для proxy_redirect
состояний:
Устанавливает текст, который следует изменить в полях заголовка «Местоположение» и «Обновить» ответа проксируемого сервера.
Итак, в настоящее время вы только посоветовали nginx изменить некоторый текст в некоторых заголовках, но не пропускать трафик на цель (домашнего сервера).
Для этого вам понадобится как минимум директиваproxy_pass
.
Имейте в виду, что nginx не заменяет содержимое ваших сайтов! Поэтому, если ваш сайт на домашнем сервере обслуживает абсолютные пути, вам нужно это исправить.