Развертывание NodeJ на сайте, на котором уже есть контент - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь начать разработку приложений с помощью nodejs, у меня уже есть сайт и хост. Проблема в том, что у меня уже есть контент на сайте. Я пытаюсь начать с создания базового приложения oAuth. Вместо того, чтобы иметь его в домашнем каталоге, я хочу, чтобы он работал в одной папке / поддомене. В настоящее время у меня есть http://spasiannrd.me. Я хочу, чтобы приложение работало на https://spasiannrd.me/auth или https://auth.spasiannrd.me. Очевидно, что если я смогу запустить его на / auth, то субдомен будет простым. Я занимался исследованием того, как развернуть базовый пакет nodejs на сайте. Я основываю код с узла узлов, через https://nodejs.org/en/docs/guides/getting-started-guide/. Наряду с редактированием .htaccess с кодом, аналогичным показанному в https://stackoverflow.com/a/42213799/3450678

У меня есть готовое приложение oAuth, но мне просто нужно его развернуть.

Я просто хочу убедиться, что могу развернуть его, поэтому я начинаю с базового приложения nodejs, пока что у меня есть:

.htaccess

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^auth(.*)$ https://localhost:3000/auth/$1 [P]

В настоящее время я уже настроил перенаправление / cpanel на панель управления и изменение http на https. Я не совсем уверен, как работает RewriteRule. Не имеет особого смысла, как он работает с другим подкаталогом во время прослушивания порта. Я думал ^auth$ вместо (auth/.*), но, похоже, не помогает.

app.js

const http = require('http');

const hostname = 'spasiannrd.me';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('NodeJS server running on Shared Hosting\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at https://${hostname}:${port}/`);
});

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...