Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2021, 12:43
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

Как правильно развернуть приложение на VPS?
Приветствую.
Есть приложение обрабатывающее POST запросы, и записывающее данные в БД.
Данные будут приходить с разных сайтов через скрипт, подключаемый в футер.
Пока работаю на локалке, отправляю через fetch на localhost:3000/saveData
Тестовый сайт тоже на локалке
На VPS оно также должно работать? Т.е., сам сервер в любой папке развернуть, а подключаемый скрипт засунуть в public_htrml, и также отправлять данные на localhost?
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2021, 13:40
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

есть, например, vps где провайдер присвоил ему ip 1.1.1.1 и dns, например, example.com

vps может быть пустым, т.е. что там не установлен ни один web-server, бд, и т.д. так что сложить файлы в папку public_html, вы уверены что есть вебсервер который смотрит на эту папку? Предположим, вебсервер установили и запустили. Если пути в файлах относительные, все будет нормально, если там явно захардкодили localhost или пути абсолютные, это не будет работать. данные надо отправлять на ip vps сервера, 1.1.1.1:80/saveData, или example.com/saveData...

Относительный путь:
<form action="/saveData">blablabla<submit /></form>


Абсолютный путь:
<form action="http://localhost:3000/saveData">blablabla<submit /></form>


с fetch та же история

https://www.w3schools.com/html/html_filepaths.asp
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2021, 16:50
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

Сообщение от SuperZen Посмотреть сообщение
или example.com/saveData
Спасибо. А как запустить приложение с привязкой к домену?
Браузер блокирует загрузку без https.
На VPS стоит VestaCP. Я могу привязать домен, залить туда скрипт в public
https://site.ru/script.js
Но приложение (Koa) запускается на http://1.1.1.1:3000 (на 80 открывается привязанный site.ru), и данные сохранить не получается /saveData
Вообще не пойму, куда копать.
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2021, 16:52
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

Я могу, конечно, Весту снести, но тогда вообще непонятно, что надо делать. С nginx что-то колдовать?
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2021, 16:53
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

BrainyCP может в этом вопросе помочь?
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2021, 19:06
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

Сообщение от yozuul
С nginx что-то колдовать?
да
Ответить с цитированием
  #7 (permalink)  
Старый 05.08.2021, 05:59
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

Сообщение от SuperZen Посмотреть сообщение
да
Спасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 05.08.2021, 10:29
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 107

недавно тоже столкнулся с подобным, инфы в рунете практически нет.
Что делал я, может поможет.
- залил все через git прямо в home (не обязательно использовать git , но мне было интерсно)
- VPS конечно пуст и нужно утанавливать все, с этим особых проблем небыло, только puppeteer вызвал сложность, если его используйте
Код:
apt-get install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
- нужно позаботиться о переменных среды (пример process.env.MYSQL_HOST,), для безопастности, я задавл их в сессию в файле .bashrc (пример export MYSQL_HOST='127.0.0.1', БД у меня на этом же сервере)
- для доступа в открытую сессию используйте screen, в этой сесии и запускайте npm run dev, позже, используя screen вы сможете вернуться к данной сессии, остановить скрипт, обновить код и опять запустить.
- для привязки домена ищите инфу о виртуальных доменах
- для HTTPS тоже решаемо, но есть нюанс с обновлением сертификата, иначе будет слетать каждые 3 месяца.
https://shra.ru/2017/07/ustanovka-le...ata-na-debian/
https://dil.livejournal.com/1715046.html

все это у меня работает и через HTTP, может потому что на данном сервере у меня есть другой виртуальный домен с сертификатом, ХЗ.

Что меня смущает. При перезагрузке сервера скрипт не запустится, нужно будет вручную это делать, но у меня пока работает и так пару месяцев без проблем
Ответить с цитированием
  #9 (permalink)  
Старый 05.08.2021, 13:09
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

без https тоже можно открывать, там в браузере должна быть ссылка в окне, когда открываешь, что-то типа, https://www.technipages.com/google-c...rivate-message ... если это все только для себя )
Ответить с цитированием
  #10 (permalink)  
Старый 05.08.2021, 15:33
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

Сообщение от SuperZen Посмотреть сообщение
без https тоже можно открывать
Что-то застрял опять.
Переустановил ОС, установил nginx, сертификаты. Сайт открывается по https://site.ru/script.js
Я правильно понял, что можно приложение запустить таки на localhost и проксировать запрос?
Т.е., в скрипте у меня просто локальная ссылка /saveData
А в nginx конфиге надо перенаправление запроса сделать на http://localhost:3000/saveData ?
Как это сделать?
Код:
server {
    listen 443 ssl http2;
    listen (:):443 ssl http2;

    server_name site.ru;
    root /var/www/site.ru/html;
    index index.html index.xml;

    ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/site.ru/chain.pem;

    include snippets/ssl-params.conf;
}
Нашёл что-то похожее, но не пойму, как это применить.
Код:
location /api {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://localhost:3000/;
    proxy_ssl_session_reuse off;
    proxy_set_header Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_redirect off;
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно организовать подключение скриптов? s24344 Общие вопросы Javascript 0 31.12.2018 11:53
Как правильно подключить стили в webpack? s24344 Сборка проекта, утилиты 0 08.11.2018 09:00
Пасоны, как правильно парсить параметры? megaupload Оффтопик 15 05.05.2013 14:44
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14