• 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明天附上

  • 相关阅读:
    java之 Timer 类的使用以及深入理解
    关于百度Editor富文本编辑器 自定义上传位置
    BufferedInputStream/BufferedOutputStream
    ByteArrayInputStream/ByteArrayOutputStream 学习
    Android之ViewPager 第二课
    Android之ViewPager 第一课
    内存四区模型
    变量的本质
    数据类型的本质
    File、Blob、ArrayBuffer等文件类的对象有什么区别和联系
  • 原文地址:https://www.cnblogs.com/MrWho/p/4277755.html
Copyright © 2020-2023  润新知