Два приложения Django на сервере apache2 с использованием wsgi?

Я пытаюсь развернуть два приложения Django на сервере Apache2, работающем на Ubuntu-16.04. Мой файл 000-default.conf выглядит следующим образом:

Обновлено: (другой порт) я использую IP-адрес 172.16.16.68.

когда я запускаю одно приложение pep_web, я могу подключить это приложение через браузер

172.16.16.68/pep_learn

а для MyApp через браузер вот так

172.16.16/Мое приложение

<VirtualHost *:80>

    <Directory /home/bic/MyApp/MyApp>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess MyApp python-path=/home/bic/MyApp:/usr/lib/python2.7/dist-packages
    WSGIProcessGroup MyApp
    WSGIScriptAlias /MyApp /home/bic/MyApp/MyApp/wsgi.py

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html


</VirtualHost>



<VirtualHost *:8080>


    Alias /static /home/bic/pep_web/protocol/static
    <Directory /home/bic/pep_web/protocol/static>
        Require all granted
    </Directory>


    <Directory /home/bic/pep_web/pep_learn>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess pep_web python-path=/home/bic/pep_web:/usr/lib/python2.7/dist-packages
    WSGIProcessGroup pep_web
    WSGIScriptAlias /pep_learn /home/bic/pep_web/pep_learn/wsgi.py

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html


    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

С этим параметром "MyApp" работает, но не работает другое приложение "pep_web".
Как решить эту проблему?


person jax    schedule 09.01.2018    source источник


Ответы (1)


Поскольку оба работают на одном и том же порту 80. Вам нужно добавить разные ServerName в каждый VirtualHost

Дополнительные документ

<VirtualHost *:80>

    <Directory /home/bic/MyApp/MyApp>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess MyApp python-path=/home/bic/MyApp:/usr/lib/python2.7/dist-packages
    WSGIProcessGroup MyApp
    WSGIScriptAlias /MyApp /home/bic/MyApp/MyApp/wsgi.py

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ServerName myapp.com

</VirtualHost>



<VirtualHost *:80>


    Alias /static /home/bic/pep_web/protocol/static
    <Directory /home/bic/pep_web/protocol/static>
        Require all granted
    </Directory>


    <Directory /home/bic/pep_web/pep_learn>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess pep_web python-path=/home/bic/pep_web:/usr/lib/python2.7/dist-packages
    WSGIProcessGroup pep_web
    WSGIScriptAlias /pep_learn /home/bic/pep_web/pep_learn/wsgi.py

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ServerName mypepapp.com


    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

Затем в /etc/hosts

127.0.0.1       localhost
::1             localhost
#your local domains
127.0.0.1       myapp.com
127.0.0.1       mypepapp.com 
person itzMEonTV    schedule 09.01.2018
comment
@itzMEonTVTV Спасибо за ваше полезное предложение. Поскольку я очень новичок в Server и Apache, вы можете объяснить, как я могу указать другое имя сервера, поскольку я использую только один IP-адрес для размещения обоих сайтов без какого-либо доменного имени. - person jax; 10.01.2018
comment
Если вы не используете домен, запускайте в другом порту. Если вы работаете на локальном хосте и получаете доступ к тому же хосту, я думаю, вы можете указать локальные домены в /etc/hosts/ - person itzMEonTV; 10.01.2018
comment
Я устал с разными портами 80 и 8080, но получил ту же ошибку. - person jax; 10.01.2018
comment
Можете ли вы, пожалуйста, изменить приведенный выше сценарий «.conf» с примером, поскольку вы предоставили /etc/hosts. это поможет мне правильно понять концепцию. Я видел много сообщений об этом и пробовал все, но ничего не сработало. - person jax; 10.01.2018
comment
Пожалуйста, обновите ваш .conf, который вы пробовали для другого порта - person itzMEonTV; 10.01.2018
comment
Проверьте мой обновленный ответ. У меня вопрос: если снять первый блок, второй работает? - person itzMEonTV; 10.01.2018
comment
Если вы удалите первый блок, второй будет работать? Да Работает в обоих случаях, если я удаляю часть скрипта верхнего или нижнего виртуального хоста. Но я оставляю только один виртуальный хост и меняю порт с 80 на любой другой, иначе он перестает работать. - person jax; 10.01.2018
comment
Вам нужно добавить Listen 8080 поверх вашего .conf, я имею в виду внешний виртуальный хост, тогда вам нужно получить доступ как 172.16.16.68:8080/ - person itzMEonTV; 10.01.2018
comment
Я сделал все изменения в соответствии с вашим ответом, но это не работает. :( - person jax; 10.01.2018
comment
Давайте продолжим это обсуждение в чате. - person itzMEonTV; 10.01.2018