美文网首页
Django mod_wsgi Apache Nginx Win

Django mod_wsgi Apache Nginx Win

作者: wyude | 来源:发表于2021-11-18 11:50 被阅读0次
  • windows下,Apache带mod_wsgi跑Django,Nginx代理Apache。

    • Django环境已经配置好了,Nginx代理了Django的简单服务。
    • 配置Apache环境,
    • 1.下载Apache,记下下载的版本,解压到文件夹。
      2.打开httpd.conf,Defin SRVROOT "Apache路径"
      3.修改默认端口到其他
      4.运行httpd.exe ,如果报错,装下对应的vc运行库
      5.添加Apache到环境变量
      6.httpd -k install -n Apache将Apache添加到Windows服务,随手启用Apache服务
      7.访问localhost:port能看到Apache页面就成了。

    • mod_wsgi安装
    • 1.添加python到环境变量,虽然现在python都自动添加了,但是还是要有PYTHONPATH,PYTHONHOME,这是个坑。PYTHONPATH对应scripts路径,PYTHONHOME对应python根目录
      2.pip install mod_wsgi 或者下载mod_wsgi。(这里更新了pip,发现新的pip安装失败会自动尝试其他版本。)
      3.下载安装的话,选择对用apache版本+vc运行库版本+对应python+对用操作系统的版本。当然,找不到就用上面python版本+操作系同对用上的就行。
      4.安装成功后控制台 mod_wsgi-express module-config > a.txt输出配置Apache用的参数,

      LoadFile path
      LoadModule wsgi_module path
      WSGIPythonHome path

    • Apache带起Django
    • 配置apache httpd.conf,添加以下内容到conf底部

#上面生成的三行
LoadFile path
LoadModule wsgi_module path
WSGIPythonHome path
#指定Django项目的wsgi.py配置文件路径
#注意中间的'/'
WSGIScriptAlias /  path\to\wsgi.py
#指定Django项目目录
WSGIPythonPath path/root
<Directory path/root>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>
#项目静态文件地址
Alias /assets path/to/assets
<Directory path/to/assets>
    AllowOverride None
    Options None
    Require all granted
</Directory>
    • Nginx配置
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    resolver 8.8.8.8;
    gzip  on;
    # 缓存目录地址不能定义在server块内,必须定义在http快中 配置一个cache空间
    proxy_cache_path ./ServerTool/cache levels=1:2 keys_zone=SLoan:500m inactive=10d max_size=10g;
    proxy_temp_path ./ServerTool/cache/temp;
    # 缓存
    # 调用缓存 SLoan为缓存名称
    proxy_cache SLoan;
    # 添加服务器地址到报文头部
    add_header X_Via $server_addr;
    # 添加缓存状态到报文头部
    add_header X-Cache $upstream_cache_status;
    proxy_cache_key $host$uri$is_args$args;
    # 定义缓存失效时间,200 是状态码,即缓存状态码是200请求成功的数据,10M是10分钟,即缓存的数据超时时间为10分钟,10分钟后过期,不定义则缓存不生效
    proxy_cache_valid 200 302 3m; #200 302状态码保存3小时
    proxy_cache_valid 301 1m; #状态保存时间为3小时
    proxy_cache_valid any 1m; #其他保存时间为 1分钟
    server {
        listen       80;
        server_name  localhost;
        #server_name 127.0.0.1;
        server_name domain.com;
        location / {
            root   html;
            index  index.html index.htm;
        }
        location /hy/ {
            proxy_pass   http://127.0.0.1:90;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location /assets/ {
            root C:/Users/Administrator/Desktop/www/myproject/tian/;
        }
        location /static/ {
            root C:/Users/Administrator/Desktop/www/;
        }
        location /avatar/ {
            root C:/Users/Administrator/Desktop/www/static/media/upload/HBY/;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

相关文章

网友评论

      本文标题:Django mod_wsgi Apache Nginx Win

      本文链接:https://www.haomeiwen.com/subject/clydtrtx.html