在同一服务器上部署不同版本的Django应用程序

时间:2019-09-18 10:49:19

标签: django apache mod-wsgi

我正在使用Apache和mod_wsgi在服务器上部署django应用程序。我正在使用wsgi的守护程序模式在服务器上运行django应用程序。

现在,我的目标是可以在同一服务器上拥有django应用程序的两个或多个版本(每个版本都有自己的设置,数据库等)。例如:

https://test-server.com/
https://test-server.com/dev

我已经更新了位于/ etc / apache2 / sites-available的apache配置文件。 这是我的配置文件:-

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin xyz@gmail.com
    ServerName test-server.com
    ServerAlias www.test-server.com
    #DocumentRoot /var/www/html

    Alias /static /var/www/html/Smart_chat_share/smart_chat_share/static  // This should accesible via https://test-server.com/ which is working
    <Directory /var/www/html/Smart_chat_share/smart_chat_share/static>
            Require all granted
    </Directory>

    WSGIDaemonProcess smart_chat_share python-home=/var/www/html/Smart_chat_share/smart_chat_share/virtual_env python-path=/var/www/html/Smart_chat_share/smart_chat_share
    WSGIProcessGroup smart_chat_share
    WSGIScriptAlias / /var/www/html/Smart_chat_share/smart_chat_share/smart_chat_share/wsgi.py process-group=smart_chat_share application-group=%{GLOBAL}

    <Directory /var/www/html/Smart_chat_share/smart_chat_share/smart_chat_share>
            <Files wsgi.py>
                 Require all granted
            </Files>
    </Directory>

    Alias /dev/static /var/www/html/dev/smart_chat_share/static // This should accesible via https://test-server.com/dev which is not working.
    <Directory /var/www/html/dev/smart_chat_share/static>
            Require all granted
    </Directory>

    WSGIDaemonProcess dev python-home=/var/www/html/dev/smart_chat_share/virtual_env python-path=/var/www/html/dev/smart_chat_share
    WSGIProcessGroup dev
    WSGIScriptAlias /dev /var/www/html/dev/smart_chat_share/smart_chat_share/wsgi.py process-group=smart_chat_share application-group=%{GLOBAL}

    <Directory /var/www/html/dev/smart_chat_share/smart_chat_share>
            <Files wsgi.py>
                 Require all granted
            </Files>
    </Directory>

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

SSLCertificateFile /etc/letsencrypt/live/scss.identixweb.com/fullchain.pem
SSLCertificateKeyFile 
/etc/letsencrypt/live/scss.identixweb.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

https://test-server.com/这是工作版本,但是https://test-server.com/dev这是第二个版本,我无法访问和测试。关于Apache配置,我经常迷路。非常感谢您的帮助。 非常感谢!

1 个答案:

答案 0 :(得分:0)

以防万一有人遇到这个问题,这是我的答案。我只是通过重新排序文件中django应用程序的配置来解决它。确保首先出现子目录,然后进行一个应用程序配置的根目录。

此文档非常有用:-  http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html