Windows操作系统上各种Web服务器搭配各种模块部署Django的方法
- 格式:doc
- 大小:312.00 KB
- 文档页数:27
Windows 7全能型WEB(asp .net php)服务器环境配置攻略(一)技术是为人服务,人可以改变技术,但绝不可以做技术的奴隶。
本着互相学习、共同提高的理念,本人以微软windows7操作系统为基础,与大家共同探讨学习在windows 7中设置服务器。
最常见的WEB服务那就是WWW服务,也就是指网站功能。
WWW服务主要为用户展示新闻、图片、提供数据、生产订单等。
配置一款 WEB 操作系统其实并不难,要求我们心要细。
发现问题要善于思考,善于搜索。
不懂不要紧,只要我们肯研究、肯学习,敢问、敢想,那一切都能解决的。
前言国内网站WEB应用程序的概况互联网发展到今天,对我们的生活产生了极大的影响。
一些专业的程序开发商为我们提供了许多很好的产品,其中不乏一些开源免费的产品。
例如国产 BBS的领头羊北京康盛创想公司,旗下包括 PHP 类产品 discuz!、supesite/xs-space、ecshop、supe-v和.net 类的 discuz!NT 产品,其最近又发布了新产品 ucenter、ucenter home 将各个应用程序之间相互联系起来。
还有国内 CMS 的新势力酷源网站管理系统(KYCMS),上线不到半年就好评如潮。
还有以开源著称的织梦网站管理系统(DEDECMS),其 3.1版本体积小巧,功能强大。
现己发展到 5.1 版本,集成了众多当前主流的模块,如问答、分类信息、小说等。
此外还有 IWMS网奇、动易、风讯、帝国、PHPCMS、PHP168等众多产品,当然一些没有坚持下来的产品也不胜其数。
就是因为有这么多的软件供应商为我们提供软件,才使得国内的互联网一片红火,每天都有大量的新站长加入进来建设互联网。
下面是国内 WEB 领域做得比较成功的产品:一:论坛类:1:discuz 论坛。
官方:2:discuz!NT 论坛。
跟上面的是同一家。
官方:3:phpwind论坛。
官方:4:动网论坛。
python框架django的使用_Django框架的基本使用若依框架Django是一个使用Python编写的开源Web应用程序框架,旨在帮助开发人员快速构建高效、可扩展和安全的Web应用程序。
它使用了一种面向对象的编程风格,遵循了MVC(Model-View-Controller)的设计模式,使得开发人员可以更简单地编写和组织代码。
下面我将介绍Django框架的基本使用。
1. 安装Django首先,你需要在你的计算机上安装Django。
你可以使用命令`pip install django`来安装最新版本的Django。
安装完成后,你可以使用命令`django-admin --version`来验证Django的安装是否成功。
2. 创建Django项目在安装完Django后,你可以使用命令`django-admin startproject project_name`来创建一个Django项目。
其中,`project_name`是你的项目名称。
这个命令会在当前目录下创建一个与项目同名的文件夹。
3. 运行Django项目4. 创建Django应用在Django中,你的项目可以包含多个应用程序。
你可以使用命令`python manage.py startapp app_name`来创建一个Django应用。
其中,`app_name`是你的应用名称。
这个命令会在当前目录下创建一个与应用同名的文件夹。
5.配置数据库Django默认使用SQLite数据库来存储数据。
如果你想使用其他类型的数据库,如MySQL或PostgreSQL,你需要在项目的`settings.py`文件中进行配置。
你需要提供数据库的名称、用户名、密码和主机等信息。
6.定义模型模型是Django中用于表示数据的核心概念。
你可以在应用的`models.py`文件中定义模型类。
模型类是从`django.db.models.Model`继承而来的Python类,每个类表示一个数据库表。
Django框架开发使用Webpack进行前端资源管理Django是一个流行的Python Web框架,广泛用于开发Web应用程序。
而Webpack是一个强大的前端资源管理工具,可以帮助我们有效地组织和打包前端代码。
在本文中,我们将探讨如何在Django框架中使用Webpack来管理前端资源。
一、为什么选择Webpack前端开发中,我们经常需要使用多个资源文件,例如HTML、CSS、JavaScript、图片等。
这些文件可能分散在各处,难以维护和管理。
同时,为了提高性能,我们需要对这些资源进行打包和压缩。
这时,Webpack就能派上用场了。
Webpack具有以下几个主要优势:1. 模块化支持:Webpack支持使用模块化方式来组织代码,便于代码的重用和维护。
2. 打包和压缩:Webpack可以将多个资源文件打包成一个或多个最终的静态文件,并且可以进行压缩,以提高网页加载速度。
3. 代码分割:Webpack支持将代码分割成多个模块,按需加载,减少初始加载时间。
4. 插件系统:Webpack拥有丰富的插件系统,可以扩展其功能,满足不同项目的需求。
二、安装Webpack要在Django框架中使用Webpack,首先需要安装Webpack。
可以通过npm(Node.js的包管理器)来进行安装。
在命令行中执行以下命令:```npm install webpack --save-dev```该命令会将Webpack安装到项目的devDependencies中。
三、配置Webpack在项目的根目录下创建一个名为webpack.config.js的文件,并进行如下配置:```const path = require('path');module.exports = {entry: './src/index.js', // 入口文件output: {path: path.resolve(__dirname, 'dist'), // 打包输出的文件夹filename: 'bundle.js' // 打包输出的文件名},module: {rules: [{test: /\.(js|jsx)$/,exclude: /node_modules/,use: {loader: 'babel-loader'}},{test: /\.css$/,use: ['style-loader', 'css-loader'] },{test: /\.(png|svg|jpg|gif)$/,use: ['file-loader']}]}};```上述配置中,我们指定了入口文件(./src/index.js),打包后的输出文件夹(dist)和输出文件名(bundle.js)。
django工作原理Django是一个基于Python的Web框架,它提供了一系列的工具和库,帮助开发者快速构建Web应用程序。
Django的工作原理可以分为以下几个方面:1. MVC架构MVC是Model-View-Controller的缩写,它是一种常见的软件架构模式。
Django采用了MVC架构,将Web应用程序分为三个部分:- Model:数据模型层,负责与数据库交互,处理数据存取操作。
- View:视图层,负责处理用户请求并返回响应结果。
- Controller:控制器层,负责协调Model和View之间的交互。
2. URL路由URL路由是指将HTTP请求映射到对应的视图函数上。
在Django中,URL路由由urls.py文件定义。
当用户访问某个URL时,Django会根据urls.py文件中定义的规则匹配对应的视图函数,并将请求传递给该函数处理。
3. 请求处理流程当用户发送HTTP请求时,Django会按照以下流程进行处理:- 中间件处理:Django中间件是一个可插拔的组件,在请求到达视图函数之前或之后执行一些操作。
例如,在请求到达视图函数之前验证用户身份、设置响应头等等。
- URL路由解析:根据urls.py文件中定义的规则,将请求映射到对应的视图函数上。
- 视图函数处理:视图函数接收请求对象作为参数,处理请求并返回响应对象。
在视图函数中可以进行各种操作,例如查询数据库、渲染模板、生成PDF等等。
- 中间件处理:Django中间件也可以在视图函数执行之后进行一些操作。
例如,在响应对象发送给客户端之前对响应进行加工。
- 响应发送:最终将响应对象发送给客户端。
4. ORM技术ORM(Object Relational Mapping)是一种将关系型数据库中的数据映射到面向对象编程语言中的数据结构的技术。
Django提供了自己的ORM框架,称为Django ORM。
使用Django ORM可以方便地进行数据库操作,而无需编写SQL语句。
Django框架开发使用Gunicorn进行WSGI服务器部署Django框架是一种高性能的Python Web开发框架,它提供了一种简单且强大的方式来构建Web应用程序。
在Django框架开发完成后,我们需要将应用程序部署到服务器上,以便用户可以通过互联网访问。
在本文中,我将介绍如何使用Gunicorn来部署Django应用程序到WSGI服务器上。
WSGI(Web Server Gateway Interface)是一种定义了Web服务器与Web应用程序之间通信的规范。
它允许我们使用不同的Web服务器来运行我们的应用程序,而不必修改应用程序的代码。
Gunicorn是一款符合WSGI规范的服务器,它可以与Django框架很好地结合,提供高性能的Web服务。
首先,我们需要在服务器上安装Gunicorn。
可以使用以下命令来安装:```pip install gunicorn```安装完成后,我们可以使用以下命令来测试Gunicorn是否正常工作:```gunicorn --version接下来,我们需要配置Gunicorn来运行我们的Django应用程序。
创建一个名为`gunicorn_config.py`的文件,并将以下内容添加到文件中:```pythonimport multiprocessingbind = "0.0.0.0:8000"workers = multiprocessing.cpu_count() * 2 + 1```在上述代码中,`bind`指定了Gunicorn监听的地址和端口,`workers`指定了服务器启动的进程数。
你可以根据服务器的配置进行适当的调整。
保存并关闭`gunicorn_config.py`文件后,我们可以使用以下命令来启动Gunicorn服务器:```gunicorn -c gunicorn_config.py your_django_project.wsgi```在上述命令中,`gunicorn_config.py`指定了Gunicorn的配置文件,`your_django_project.wsgi`指定了Django项目的WSGI应用程序。
Django中的微服务架构与部署在当今的软件开发领域中,微服务已成为一种流行的架构模式。
它将一个应用程序划分为多个较小的、独立运行的服务,每个服务专注于完成特定的功能。
而Django,作为一个功能强大且灵活的Python开发框架,同样可以应用微服务架构来构建复杂的Web应用程序。
本文将为您介绍Django中的微服务架构,并探讨如何进行有效的部署。
1. 微服务架构简介微服务架构是一种将应用程序拆分为若干个小型服务的设计模式。
每个服务运行在自己的进程中,它们之间通过轻量级的通信协议进行交互。
这种架构模式的优点在于每个服务都可以独立部署、扩展和维护,同时也提供了更高的灵活性和可伸缩性。
2. Django中的微服务架构在Django中实现微服务架构需要使用一些额外的工具和技术。
首先,您需要使用Django REST Framework(DRF)来构建API服务。
DRF是一个强大的框架,用于帮助开发人员构建Restful API。
其次,您需要使用消息代理,如RabbitMQ或Kafka,来处理服务之间的异步通信。
此外,容器化技术如Docker和Kubernetes也是常用的微服务部署方式。
3. 架构设计在微服务架构中,应用程序被拆分为多个服务,每个服务专注于完成特定的功能。
例如,一个电子商务应用程序可以被拆分为用户服务、订单服务、支付服务等。
每个服务都有自己的数据库和业务逻辑,通过API进行通信。
这样的设计使得不同的团队可以独立开发和维护每个服务,并能快速迭代和扩展。
4. Django微服务的部署在部署Django微服务时,使用容器化技术可以极大地简化和加快部署过程。
首先,您需要将每个服务打包为一个Docker镜像,并使用Docker Compose来定义和编排多个容器的部署。
然后,您可以使用Kubernetes来进行容器的自动编排和管理,以实现高可用性和弹性扩展。
5. 监控和日志对于微服务架构,监控和日志是非常关键的。
WEB服务器的安装与配置WEB服务器的安装与配置1. 介绍在互联网应用中,WEB服务器扮演着非常重要的角色。
它负责接收用户的HTTP请求并向客户端提供响应。
本文档将详细介绍WEB服务器的安装与配置步骤。
2. 准备工作在安装和配置WEB服务器之前,需要完成以下准备工作:- 确定服务器操作系统:根据实际需求选择合适的服务器操作系统,如Windows Server、Linux等。
- 确定WEB服务器软件:根据需求选择合适的WEB服务器软件,如Apache HTTP Server、Nginx、Microsoft IIS等。
- 确定硬件要求:根据实际应用场景确定服务器硬件配置要求,如CPU、内存、磁盘空间等。
3. 安装操作系统根据选择的服务器操作系统,按照操作系统厂商提供的安装指南进行服务器操作系统的安装。
4. 安装WEB服务器软件根据选择的WEB服务器软件,按照软件开发者提供的安装指南进行WEB服务器软件的安装。
5. 配置基本设置5.1 网络设置- 配置服务器的IP地址、子网掩码、网关等网络信息。
- 配置DNS服务器地址,以便服务器能够解析域名。
5.2 防火墙设置- 配置服务器的防火墙规则,允许外部访问WEB服务器的相关端口。
5.3 主机名设置- 配置服务器的主机名,以便能够通过域名访问WEB服务器。
6. 配置WEB服务器6.1 配置文件位置- 根据不同的WEB服务器软件,找到配置文件的位置,通常位于安装目录下的conf文件夹中。
6.2 虚拟主机配置- 配置虚拟主机,使得一个WEB服务器可以承载多个网站。
- 配置虚拟主机的域名、文档根目录、日志文件等。
6.3 SSL/TLS证书配置- 配置SSL/TLS证书以实现HTTPS协议的安全访问。
- 获取SSL/TLS证书,配置证书文件和私钥文件的路径。
6.4 URL重写配置- 配置URL重写规则,以实现网站的URL美化和重定向。
6.5 反向代理配置- 配置反向代理,将来自客户端的请求转发给后端服务器处理。
PythonWeb框架DjangoOAuthToolkitPythonWeb框架DjangoOAuthToolkit是一款强大的工具,旨在简化使用Django开发OAuth2认证的过程。
本文将介绍DjangoOAuthToolkit的基本概念、安装方法以及使用示例,并展示其在实际项目中的应用。
一、DjangoOAuthToolkit简介DjangoOAuthToolkit是一个基于Django开发的插件,帮助开发者快速搭建OAuth2认证系统。
OAuth2是目前流行的认证授权协议,用于保护用户隐私和数据安全,被广泛应用于互联网服务中。
DjangoOAuthToolkit提供了一组工具和API,简化了OAuth2认证的实现过程,提高了开发效率。
二、安装DjangoOAuthToolkit使用DjangoOAuthToolkit前,首先需要安装它。
可以通过pip命令来进行安装,具体步骤如下:1. 确保已经安装了Python和pip。
2. 打开命令行工具,运行以下命令安装DjangoOAuthToolkit:```pip install django-oauth-toolkit```三、使用DjangoOAuthToolkit安装完成后,我们可以开始使用DjangoOAuthToolkit来实现OAuth2认证。
下面简单介绍几个常用的功能:1. 注册应用程序:在使用OAuth2认证前,需要先在DjangoOAuthToolkit中注册应用程序。
这可以通过在Django的settings.py文件中添加应用配置进行实现。
```pythonINSTALLED_APPS = [...'oauth2_provider',]```2. 配置URL路由:DjangoOAuthToolkit提供了一组默认的URL路由,用于处理认证相关的请求。
我们需要在Django的urls.py文件中配置这些URL路由:```pythonfrom django.urls import include, pathfrom oauth2_provider import views as oauth2_viewsurlpatterns = [...path('oauth/', include('oauth2_provider.urls',namespace='oauth2_provider')),]```3. 创建OAuth2认证的客户端:在Django的应用程序中,我们可以通过以下代码来创建OAuth2认证的客户端:```pythonfrom oauth2_provider.models import ApplicationApplication.objects.create(client_id='your_client_id',client_secret='your_client_secret',user=user,authorization_grant_type="authorization-code",name="Your Application")```注意,这里的'user'是指该客户端所属的用户。
【python】使⽤Django搭建web服务器并部署前⾔【玛卡巴卡】需要搭建⼀个⽤于响应requests请求的web服务器⽤于挣钱,现在尝试⽤Django⼀步⼀步实现,并部署。
此篇⽂档不涉及浏览器实际访问web页⾯的任何东西,只是响应后台请求。
1、创建虚拟环境如果你不在意⾃⼰的虚拟机(服务器)上只有⼀个django环境,请跳过这⼀步。
sudo apt install python3-venv #安装venvmkdir django_server #新建⼀个⽬录cd django_server #进⼊新建的⽬录python3 -m venv venv #创建新的虚拟环境,在名为venv的⽬录⼤致内容如下:xx@xx:~/xxx/django_server/venv$ ls -ltotal 20drwxrwxr-x 3 xx xx 4096 Nov 25 14:50 bindrwxrwxr-x 2 xx xx 4096 Nov 25 14:48 includedrwxrwxr-x 3 xx xx 4096 Nov 25 14:48 liblrwxrwxrwx 1 xx xx 3 Nov 25 14:48 lib64 -> lib-rw-rw-r-- 1 xx xx 69 Nov 25 14:48 pyvenv.cfgdrwxrwxr-x 3 xx xx 4096 Nov 25 14:48 sharexx@xx:~/xxx/django_server/venv$source venv/bin/activate #开始使⽤此虚拟环境,通过运⾏activate脚本来激活deactivate #停⽤虚拟环境,返回正常shell2、安装django及其项⽬创建(venv) xxx:~/xx/django_server$ pip3 install django #注意这⾥是安装到虚拟环境⾥python -m django --version # 查看版本django-admin startproject djangoMailServer #创建项⽬⽬录结构如下:djangoMailServer/├── db.sqlite3├── djangoMailServer│├── asgi.py│├── __init__.py│├── __pycache__││├── __init__.cpython-36.pyc││├── settings.cpython-36.pyc││├── urls.cpython-36.pyc││└── wsgi.cpython-36.pyc│├── settings.py #object的设置│├── urls.py #地址│└── wsgi.py #部署时会⽤到└── manage.py2 directories, 11 filespython3 manage.py startapp mail # 创建应⽤⽬录结构如下:mail/├── admin.py #后台相关的设置├── apps.py #app相关的设置⽂件├── __init__.py├── migrations #数据库变更相关│└── __init__.py├── models.py #数据库模型相关├── tests.py #写测试代码的地⽅└── views.py #业务逻辑实现的地⽅1 directory, 7 files此时基本的框架就已经搭建完成,⾮常简单,接下来就要进⾏个性化,⽤于实现⾃⼰的功能3、服务启动测试object增加app打开 settings.py# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','mail', # 注意添加了这⼀⾏,⽤于obj找app资源]...ALLOWED_HOSTS = ['*'] #记得修改这个选项,此处代表任何地址,默认只能本机访问,可以根据⾃⼰的需要进⾏修改定义⽹址根据⽹址的不同,可以访问不同的内容打开obj中的urls.py"""MailBaitObj URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:https:///en/3.2/topics/http/urls/Examples:Function views1. Add an import: from my_app import views2. Add a URL to urlpatterns: path('', views.home, name='home')Class-based views1. Add an import: from other_app.views import Home2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))"""from django.contrib import adminfrom django.urls import pathfrom mailbaitapp import viewsurlpatterns = [path('admin/', admin.site.urls), #⾃带的管理页⾯path('mail/', views.recv_mailmsg), #我⾃⼰新加的地址,即 http://xxxx:xx/mail/#views 代表views.py recv_mailmsg代表定义的函数]响应请求打开views.pyfrom django.http import HttpResponsedef recv_mailmsg(request):return HttpResponse("hello world!")启动服务此时访问地址的话,已经可以看到hello world.了4、实现C/S实际功能服务端服务端就是recv_mailmsg 这个函数了,只列出⼏个关键参数,其他的可以根据业务来搞。
Windows操作系统上各种Web服务器搭配各种模块部署Django的方法资料整理:糊糊(huyoo353@)我的博客:/huyoo/最后更新:2013年3月27日目录1准备工作 (3)1.1.1运行环境 (3)1.1.2服务器套件 (4)2IIS + PyISAPIe运行Django (4)2.1运行环境及组件准备: (4)2.1.1运行环境 (4)2.1.2必须组件: (5)2.1.3可选组件: (5)2.2组件安装 (5)2.2.1必须组件安装操作: (5)2.2.2可选组件安装操作: (6)2.2.3组件测试 (6)2.2.4IIS 和Python (6)2.2.5你的网站目录结构 (7)2.2.6配置IIS (7)2.2.7配置一个应用程序池 (7)2.2.8添加站点 (9)2.2.9编辑Isapi.py (9)2.2.10启动 (10)2.3完毕了?别急,还需要修改文件pyisapie.py (10)2.4注意事项: (10)3IIS + FastCGI 运行Django (11)4IIS + isapi_wsgi 运行Django (12)4.1理解ISAPIWSGI (12)4.1.1介绍 (13)4.1.2理论 (13)4.1.3Example (13)4.1.4IIS 配置 (15)4.1.5Managing your environment ............................................ 错误!未定义书签。
4.1.6使用zc.buildout (16)4.1.7isapi-wsgi的新家. (17)4.1.8文档 (17)4.1.9配置向导 (17)4.1.10准备工作: (17)4.1.11Dependencies ................................................................ 错误!未定义书签。
4.1.12测试 (18)4.1.13IntegrationWithDjango (18)5IIS + pyisapi-scgi运行Django (22)5.1需求: (22)5.2建立站点 (22)5.3关于scgi进程所使用的用户权限的说明: (22)5.4评论 (23)5.5PyISAPI_SCGI_0_6_17 (23)5.5.1pyISAPI_SCGI 0.6.17 使用说明 (23)6参考资料: (27)1准备工作1.1.1运行环境1.将硬盘分区为C: D: E: F:,不是这样分区的也没有关系;C:为NTFS格式,最好留一个分区为Fat32格式的,以供测试用,其余分区均弄成NTFS格式。
2.将Windows Server 2003 RC2 安装好并能够良好运行。
3.下载安装python2.5.4(2.5.2,2.5.4,2.5.6都行,只要是2.5.X)1.1.2服务器套件1.1.2.1 I IS1.1.2.1.1I IS+PyISAPIe1.1.2.1.2I IS+FastCGI1.1.2.1.3I IS+isapi_wsgi1.1.2.2 A pache1.1.2.2.1A pache+mod_python1.1.2.2.2A pache+mod_wsgi1.1.2.3 L ightTpd1.1.2.3.11.1.2.4 N ginx2IIS + PyISAPIe运行Django 2.1运行环境及组件准备:2.1.1运行环境Windows Server 2003 RC2+ IIS6.0 安装、配置并能够良好运行。
2.1.2必须组件:python2.5+,或者Python 2.6.4,pywin32,pyisapie0.4 及其源代码django 1.1.1+2.1.3可选组件:MySQL,数据库服务器,,推荐使用MySQL 5.1.推荐使用MySQL 图形工具,它可以使数据库的管理在windows上更加方便.PIL, Python Imaging Module.vs2005+pyisapie0.4源代码2.2组件安装2.2.1必须组件安装操作:2.2.1.1 P ython安装python2.5到C: 盘,名为“Python25”。
2.2.1.2 p ywin32安装和python的版本相应的pywin32版本下载并安装PyISAPI1.1.0-rc4. 我推荐你安装到C:根目录, 就像我们安装python时装到C:\一样。
2.2.1.3 p yisapie拷贝pyisapie.dll的时候,使用自己编译的那个。
在windows服务器上,我知道的运行Django最好方式是安装Apache,并以mod_python 或者mod_wsgi的方式运行。
首先,虽然Apache,在windows 上运行的好好的,但是在windows上运行,看起来始终就像个杂牌货。
所有的unix 约定看起来就像是鹤立鸡群一样难堪。
看起来好像是IIS比较稳定高效的运行PHP,那为什么不能运行Django呢?最好的选择看起来应该是PyISAPIe, 一个为IIS设计的ISAPI 插件,以允许Python脚本来提供网页。
我尝试了其他的选择,比如isapi_wsgi, 但它不能使服务器保持长久运行,仅仅一两个请求就让服务器崩溃了。
载并安装PyISAPI1.1.0-rc4. 我推荐你安装到C:根目录, 就像我们安装python时装到C:\一样。
2.2.1.4 D jango下载最新的Django发行版,解压缩安装到C:\python\Lib\site-packages.按照Django 入门教程,创建一个基本的Django 项目并运行,以验证你的Python运行正常。
2.2.2可选组件安装操作:2.2.2.1 编译pyisapie解压缩pyisapie,进入source使用vs2005(我用的是这个,2003或者6应该也可以)加载python.lib 和python.h重新编译pyisapie。
默认下载的pyisapie是使用python2.6.2编译的。
然后按照/wiki/DjangoOnWindowsWithIISAndSQLServer中的说明去做。
2.2.2.2 安装MySQL和Python MySQLdb我们的项目使用MySQL 作为我们的数据库服务器。
如果你要使用Postgres, 你需要自己解决。
要想Django 使用MySQL数据库,还得安装Python 对MySQL的绑定MySQLDb.2.2.3组件测试2.2.3.1 Django2.2.4I IS 和Python在windows服务器上,我知道的运行Django最好方式是安装Apache,并以mod_python 或者mod_wsgi的方式运行。
First, Apache, while it runs under Windows just fine, always feels like a kludgewhen running under Windows. All of the UNIX conventions just stick out like asore thumb.Seeing that IIS is so stable 和awesome at running PHP, why wouldn’t it work to run Django?最好的选择看起来应该是PyISAPIe, 一个为IIS设计的ISAPI 插件,以允许Python脚本来提供网页。
我尝试了其他的选择,比如isapi_wsgi, 但它不能使服务器保持长久运行,仅仅一两个请求就让服务器崩溃了。
2.2.5你的网站目录结构每一个Django网站需要专属于它自己的一份pyisapie.dll拷贝,和它专属的配置文件。
我最终完成的目录结构分为2个文件夹。
在我的inetpub 目录下,我创建了一个目录名为“sites”,这里将存放我的每一个基于Django创建的网站,每一个Each project has it’s own directory under that, 和within each of those directories I have a folder for pyisapie 和another for my Django project.In the case of the structure looks like this:“log” 和“public”目录不是必须的。
在pyisapie 目录内, I have a copy of the DLL file, 和the configuration files.下一步,将你的Django项目放在python 子目录。
2.2.6配置IIS我们需要将PyISAPIe 在IIS上注册为一个有效的服务器扩展,并且如果你需要运行多个Django 生产的网站的话,你还需要进行非常特殊的设置。
首先,为我们的网站注册特定的pyisapie.dll副本:打开IIS 管理器, 单击“Web 服务扩展”.单击“操作”菜单,选择“添加一个新的Web 服务扩展”,给你的扩展服务名称填一个你容易识别的名字,然后在“要求的文件”框框右边,单击“添加”按钮,浏览到你的网站文件夹,在pyisapie 目录下, 单击选择pyisapie.dll 文件。
单击选中“设置扩展状态为允许”旁边的复选框。
2.2.7配置一个应用程序池根据PyISAPIe的工作方式,你将需要为每一个Django网站配置独立的应用程序池。
性能优先,对于计划在一个主机上运行大量的Django网站,这种方式不是件好事。
但是根据我的测试,这样做,运行起来很方便。
在你的IIS 管理器,右键单击应用程序池,并选择“新建”—“应用程序池”。
然后给你新建的应用程序池命名,最好能给你点提示的名字。
In terms of settings, I’m still tweaking.作为加载测试,我使用了一个工具叫做siege,并检查确认服务器能处理100个请求/每秒,To achieve this, 我设置应用程序池每60分钟,或者在250个请求之后回收工作进程。
你可以调整设置,来看看那种设置比较适合你。
2.2.8添加站点按你平常添加网站的做法,在IIS中添加一个站点,我把我的“主目录”设置为你先前看到的空的“public”目录,虽然是空目录,但是它没有实质影响因为我们将要将所有的网站访问请求指向我们的PyISAPIe 文件。
在主目录,给你的应用一个名字,然后单击“配置”。
在通配符应用程序映射框框下,单击“插入”,然后浏览你的网站特定的PyISAPIe.dll 文件,然后确保你的“确认文件是否存在”处于未勾选的状态。