Я разместил свой веб-сайт на экземпляре 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>
]