У меня есть несколько общих вопросов относительно различий в процессе установки Django, RoR и PHP с Apache. Мое понимание следующее, верно ли мое понимание? это лучшие практики для развертывания Django и RoR с Apache?
PHP:
Apache имеет собственный интерпретатор PHP, поэтому, когда Apache получает запрос http, который вызывает файл .php, он запускает код PHP напрямую и возвращает HTML-код результата запрашивающей стороне. Чтобы настроить PHP с Apache, нам просто нужно указать путь к каталогу PHP в файле конфигурации Apache
RoR:
Apache не имеет встроенного интерпретатора для Ruby; должен быть отдельный веб-сервер Rails, такой как Thin или Unicorn, работающий на порте, отличном от 80. Этот веб-сервер может вызывать интерпретатор Ruby для обработки программ Ruby. Апач в этом процессе состоит в том, чтобы перенаправить http-запрос на порт 80 на порт, где слушает сервер rails. Следующие строки в файле конфигурации Apache будут выполнять перенаправление: (при условии, что сервер Rails работает на порту 3000).
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost *:80>
ServerName <xxx>
DocumentRoot "D:/RailsFolder"ProxyPass / http://<xxx>.com:3000/
ProxyPassReverse / http://<xxx>.com:3000/
ProxyPreserveHost On
</VirtualHost>
Является ли это идеальным способом развертывания RoR с Apache, будут ли проблемы с производительностью из-за издержек перенаправления?
Джанго:
Это моя наименее знакомая тема. Насколько я понимаю, в Apache нет встроенного интерпретатора для Python, но мы можем установить модуль «mod_wsgi» в Apache, это позволит Apache интерпретировать код Python напрямую. После установки модуля «mod_wsgi» я могу использовать Apache с приложением Django так же, как PHP; который напрямую указывает путь к каталогу Django в конфигурационном файле Apache, и каждый раз, когда в HTTP поступает запрос http, Apache будет вызывать интерпретатор python для обработки программы python. Это правильное понимание?
Задача ещё не решена.
Других решений пока нет …