Django生产环境的部署-Apache-mod_wsgi

httpd.conf配置

ServerSignature On
ServerTokens Full


Define APACHE24 Apache2.4
Define SERVER_BASE_DIR "D:/ProgramFiles/wamp" # 偷懒用了WAMP,这里就这么配置下
Define PYTHON_PATH "C:/Python27" # Python PATH
Define VIRTUALENV_HOME "D:/ProgramFiles/V" # 虚拟环境的PATH
Define PROJECT_BASE_DIR "E:/Users/zhangsan/Codes" # 项目代码PATH
Define DEMO_PORT 8080 # 分配给项目的监听的端口


ServerRoot "${SERVER_BASE_DIR}/bin/apache/apache2.4.9"
WSGIPythonHome "${PYTHON_PATH}"
WSGIPythonPath "${VIRTUALENV_HOME}/o/Lib/site-packages"


Listen 0.0.0.0:80
Listen [::0]:80
Listen ${DEMO_PORT}


# 下面的一些module属于WAMP默认开启的,一并放在下面
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so


# LoadModule that project may needed
LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/mod_headers.so
LoadModule mime_magic_module modules/mod_mime_magic.so

LoadModule proxy_module modules/mod_proxy.so # 需要反向代理的话,下面几个也是必要的
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule wsgi_module modules/mod_wsgi.so # 这个是必要的.


<Files *.css>
    Header set Content-type "text/css"
</Files>
<Files *.js>
    Header set Content-type "application/javascript"
</Files>

LoadModule php5_module "D:/ProgramFiles/wamp/bin/php/php5.5.12/php5apache2_4.dll"

<IfModule unixd_module>
    User daemon
    Group daemon
</IfModule>

ServerAdmin admin@example.com

ServerName localhost:80

HostnameLookups Off

DocumentRoot "${SERVER_BASE_DIR}/www/"

<Directory />
    AllowOverride none
    ## Require all denied
    Require all granted
</Directory>


<Directory "${SERVER_BASE_DIR}/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require local
</Directory>



<IfModule dir_module>
    DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "${SERVER_BASE_DIR}/logs/apache_error.log"

LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
    </IfModule>

    CustomLog "${SERVER_BASE_DIR}/logs/access.log" common

</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "${SERVER_BASE_DIR}/bin/apache/apache2.4.9/cgi-bin/"

</IfModule>

<IfModule cgid_module>
</IfModule>

<Directory "${SERVER_BASE_DIR}/bin/apache/apache2.4.9/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
    TypesConfig conf/mime.types
    AddEncoding x-compress .Z
    AddEncoding x-gzip .gz .tgz
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
</IfModule>

EnableSendfile off

AcceptFilter http none
AcceptFilter https none

Include conf/extra/httpd-autoindex.conf

<IfModule proxy_html_module>
    Include conf/extra/proxy-html.conf
</IfModule>

<IfModule ssl_module>
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
</IfModule>

Include "${SERVER_BASE_DIR}/alias/*"  # 项目的实际的配置项由外部引入,保留httpd.conf的完整性,这是有好处的

Define APP_BASE_DIR_BASE_DIR "${PROJECT_BASE_DIR}/appname" # 定义 Application

<VirtualHost *:${DEMO_PORT}>
    DocumentAPP_BASE_DIR "${APP_BASE_DIR}"
    # ServerName my-demo.com
    WSGIScriptAlias / "${APP_BASE_DIR}/core/wsgi.py"

    <Directory "${APP_BASE_DIR}/core">
       <Files wsgi.py>
           Require all granted
       </Files>
    </Directory>

    Alias /static "${APP_BASE_DIR}/static"
    <Directory "${APP_BASE_DIR}/files/static">
        Require all granted
    </Directory>

    # <Location /ws>
    #     ProxyPass ws://127.0.0.1:8001/ws
    #     ProxyPassReverse ws://127.0.0.1:8001/ws
    # </Location>

    # <Location /ipython>
    #     ProxyPreserveHost On
    #     ProxyPass http://127.0.0.1:8002/ipython
    #     ProxyPassReverse http://127.0.0.1:8002/ipython
    #     ProxyPass ws://127.0.0.1:8002/ipython
    #     ProxyPassReverse ws://127.0.0.1:8002/ipython
    #     Header set Origin "http://127.0.0.1:8002/"
    #     RequestHeader set Origin "http://127.0.0.1:8002/"
    # </Location>
</VirtualHost>

demo明天附上

原文地址:https://www.cnblogs.com/MrWho/p/4277755.html