nginx反向代理+apache+mod_wsgi+virtualhost部署Django项目

2016年07月30日 原创
关键词: django httpd mod_wsgi nginx
摘要 使用nginx作为反向代理,代理静态资源并分发请求到apache,apache使用mod_wsgi模块和虚拟主机配置django项目。

一、安装nginx和apache。

yum install nginx

yum install httpd

二、配置nginx对请求进行分发和提供静态资源。

vim /etc/nginx/nginx.conf

server {
        listen       80; 
        server_name  programset.com,www.programset.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /media {
                alias /home/lonphy/django/media;
        }   
        location /static {
                alias /home/lonphy/django/static_root;
        }   
        location / { 
                proxy_pass http://blog.programset.com:8000/;
        }

三、配置apache和mod_wsgi。

vim /etc/httpd/conf/httpd.conf

<VirtualHost *:8000>
        ServerName blog.programset.com
        DocumentRoot "/var/www/html"
        ErrorLog "logs/blog.programset.com-error_log"
        TransferLog "logs/blog.programset.com-access_log"
        
        WSGIDaemonProcess blogprocess user=lonphy group=lonphy processes=2 threads=30 python-path=/usr/lib/python2.7/site-packages:/home/lonphy/django/programset
        WSGIProcessGroup blogprocess
        
        WSGIScriptAlias / /home/lonphy/django/programset/programset/wsgi.py
        <Directory /var/www/html>
                Require all granted
        </Directory>
        <Directory /home/lonphy/django/programset/programset>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>
</VirtualHost>

四、启动nginx和apache。

service httpd start

servce nginx start

现在访问页面的话,nginx会直接提供静态资源,动态资源则会把请求分发到apache服务器,然后apache服务器调用mod_wsgi执行python脚本,就能看到本博客了。