Назад | Перейти на главную страницу

SSL - Apache и Node.js в одном экземпляре Amazon EC2

Я разместил свой веб-сайт на экземпляре EC2, используя Apache. SSL также был настроен правильно, работает на HTTPS, порт 443.

В настоящее время я только что добавил на сайт приложение чата, используя Node.js + socket.io. Сервер Node.js прослушивает порт 3333.

Как я могу запустить два сервера (Apache и Node.js) на одном экземпляре с защищенным SSL? Amazon EC2 не позволяет мне открыть другой порт для HTTPS. Он разрешает только 443 для HTTPS.

Дополнительный порт открывать ни для чего не нужно. Вы можете просто настроить новый виртуальный хост с новым ServerName используя ProxyPass директива для направления входящего трафика SSL на ваш локальный сервер Node.js.

Например:

<VirtualHost *:443>
        ServerName nodeapp.com
        ServerAlias www.nodeapp.com app.nodeapp.com
        ServerAdmin webmas@localhost
        DocumentRoot /not/that/important

        SSLEngine on
        SSLCertificateFile      /path/to/cert
        SSLCertificateKeyFile   /path/to/key


        ProxyRequests off
        ProxyPass "/" "http://127.0.0.1:3333/"
        ProxyPassReverse "/" "http://127.0.0.1:3333/"

        ErrorLog ${APACHE_LOG_DIR}/nodeapp_error.log
        CustomLog ${APACHE_LOG_DIR}/nodeapp_access.log combined

</VirtualHost>