
Требования
Мы предполагаем, что в вашей системе уже установлен Node.js.
Если все таки еще нет, посмотрите эти руководства:
- ⚔️ Как установить последние версии Node.js и NPM в Ubuntu / Debian
- Как установить Node.js 10 LTS & NPM на FreeBSD 12
Шаг 1 – Создание примера приложения
Поскольку вы здесь 🙂 у вас должно быть запущенное приложение Node.js на каком-то порту.
Мы предполагаем, что вы запускаете свое приложение на порту 3000.
Для демонстрации я создам пример веб-приложения на Node.js и запущу на порту 3000.
Так чтобы вам было легче понять.
vi myapp.js
Затем добавьте следующее содержимое в файл javascript.
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World'); }).listen(3000, "127.0.0.1"); console.log('Server running at http://127.0.0.1:3000/');
node myapp.js &
Шаг 2 – Установим сервер Apache
sudo apt install apache2 ### Debians системы sudo yum install httpd ### CentOS 7/6 sudo dnf install httpd ### Fedora & CentOS 8
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
sudo a2enmod proxy proxy_http
Шаг 3 – Настройте Apache VirtualHost
Создайте файл конфигурации виртуального хоста для своего домена
### Системы на основе Debian sudo vim /etc/apache2/sites-enabled/example.com.conf ### Системы на основе Redhat sudo vim /etc/httpd/conf.d/example.com.conf
2
3
4
5
6
7
|
<VirtualHost *:80>
ServerName example.com
ProxyRequests On
ProxyPass / http://localhost:3000
ProxyPassReverse / http://localhost:3000
</VirtualHost>
|
Шаг 5 – Проверьте настройку
Теперь зайдите на ваш сервер, используя доменное имя, вы увидите те же страницы, что и на http://127.0.0.1:3000/.
Заключение
Вы выполнили настройку прокси-сервера Apache для создания приложения Node.js.
В качестве альтернативы, Nginx имеет лучшую производительность в качестве прокси-сервера, поэтому, если вы не ограничены Apache, используйте прокси-сервер Nginx:
- Как настроить Nginx как обратный прокси для приложения Nodejs
- ✍ Как использовать Nginx в качестве обратного прокси
- ◀️ Настройка Jenkins за обратным прокси-сервером Nginx и SSL шифрованием Let’s Encrypt
- ModSecurity + Nginx + Ubuntu 16.04