Это может показаться глупым вопросом для экспертов по Node, но на данный момент я сбит с толку.
У меня есть VPS с (Centos) и php-сайт example.com. Я хотел запустить какое-нибудь приложение Node вместе со своим php-сайтом, поэтому я установил Node.js в свой корневой каталог. Для лучшего понимания вот структура каталогов
public_html
-> index.php
-> style.css
-> node
-> server.js
-> node_modules
-> package.lock.json
-> package.xml
Мои вопросы
1) Правильный ли способ установки узла и всех модулей узла в корневой каталог? Если нет, то где установить Node и его модули? Потому что я пытался установить Node и его модули (socket.io, express и т. д.) Из корневого каталога, как это
node
-> node_modules
-> package.lock.json
-> package.xml
public_html
-> index.php
-> style.css
-> server.js
а затем запустил node server.js, расположенный в моем корневом каталоге, но он не мог работать, потому что не были найдены некоторые модули, такие как socket.io, которые мне требовались в server.js.
2) Как я могу защитить свое приложение Node server.js? Потому что любой может получить к нему доступ через прямой адрес браузера, например.
https://example.com/server.js
и это покажет весь простой код, как обычный файл javascript.
В ожидании благодарности за любую помощь.






Чтобы ответить на второй вопрос: вы можете защитить свой файл server.js, добавив его в свой robots.txt как запрещенный:
Disallow: /server.js
Чтобы ответить на ваш первый вопрос, НЕТ.
Вы должны развернуть свое приложение в непубличной папке, например /opt/yourapplication. Я рассмотрю возможность создания пользователя yourapplicationuser с ограниченным набором прав и сделаю этого пользователя владельцем папки вашего приложения. Затем запустите ваше приложение от имени этого пользователя.
Чтобы ответить на второй вопрос, нечего защищать, поскольку приложение nodejs не будет совместно использовать каталог и его файлы, а вместо этого предоставит фактическую реализацию HTTP-сервера, который будет прослушивать входящие запросы на заданном / настроенном порту.
Ваша цель - предоставить общий доступ к порту 80 для приложений PHP и NodeJS, что, как я понимаю, является вашей целью. Вам нужно будет настроить обратный прокси-сервер (который может быть вашим фактическим httpd-сервером), который на основе маршрута перенаправляет трафик в приложение NodeJS, которое прослушивает другой локальный порт, например: 8081.
Я думаю, что шаги, отраженные в это руководство, могут помочь вам в вашем путешествии.
Ссылка, которую вы предоставили, действительно полезна. Спасибо
Я не думаю, что robot.txt используется для предотвращения доступа к какому-либо файлу, и это не цель robot.txt, кроме рекомендаций для поисковых роботов. Однако вы мне подсказали, что я могу запретить доступ с помощью
.htaccess, как мне кажется. Еще не пробовал. Но снова мой вопрос остается, каков стандартный способ для самого приложения Node.