Skip to content

Instantly share code, notes, and snippets.

@FlyInk13
Created October 3, 2022 16:50
Show Gist options
  • Save FlyInk13/d5eed4cdf8b30e690085920a04a05407 to your computer and use it in GitHub Desktop.
Save FlyInk13/d5eed4cdf8b30e690085920a04a05407 to your computer and use it in GitHub Desktop.
Открываем локальный проект на своем сервере без передачи кода, посредством ssh туннеля.
  • Арендуем сервер и привязываем к нему сайт через dns, либо используем домен предоставляемый хостингом.
  • Для примера представим что наш сайт example.com ведет на этот сервер.
  • Запускаем команду, которая прокидывает ssh туннель до сервера
ssh -R 127.0.0.1:8080:127.0.0.1:3000 -N -f [email protected]

# Описание аргументов:
# -R [bind_address:]port:host:hostport - Прокидывает локальный порт на удаленный сервер
# 3000 - Порт на котором висит локально работающий проект
# 8080 - Порт на котором мы хотим видеть проект на сервере, в целом можно указать 80, если ничего на нем нет и есть домен от хостинга.
# -N - Не выполнять команду на сервере (Для проброса портов нам не нужны команды)
# -f - Вполнять команду в фоне (Туннель будеть висеть в фоновом процессе, этот аргумент можно убрать)
# [email protected] - данные для подключения к серверу
  • После этого шага по адресу вашего сервера будет доступен запущеный локально сервер http://example.com:8080/ (но это не точно, возможно в команде выше нужно поменять первый ip на ip вашего сервера)
  • Для доступа по https нужно установить nginx
  • Чтобы localhost:8080 превратился в домен третьего уровня используем proxy_pass:
server {
  listen 80;
  server_name react.example.com;

  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
  }

  root /home/www/;
}
  • Сейчас ваш проект доступен по адресу http://react.example.com/
  • Затем вы можете поставить сгенерировать домену ssl сертификат для доступа по https (гугли letsencrypt nginx)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment