-
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;
}
}
}
网友评论