做网站内容软件,wordpress 修改程序文件,百度竞价推广开户费用,教育类app开发文章目录 1.django-release2.mod_wsgi2.1.winnt模式2.2.worker模式2.3.preforker模式2.4.小节 3.apache配置参数3.1.全局参数3.2.主机参数 4.总结 1.django-release
由于django处理静态资源的效率偏低#xff0c;顾在release模式不支持静态资源#xff0c;这种情况需要在apa… 文章目录 1.django-release2.mod_wsgi2.1.winnt模式2.2.worker模式2.3.preforker模式2.4.小节 3.apache配置参数3.1.全局参数3.2.主机参数 4.总结 1.django-release
由于django处理静态资源的效率偏低顾在release模式不支持静态资源这种情况需要在apache下配置静态资源路径。在Apache24\conf目录下httpd.conf文件中添加映射如下所示
#设置静态和媒体文件路径
Alias /media C:/ZLComputeServer/Apache24/htdocs/backend/media
Directory C:/ZLComputeServer/Apache24/htdocs/backend/media AllowOverride NoneOptions None Require all granted
/Directory2.mod_wsgi
mod_wsgi作为apache的扩展模块参数配置在主程序配置文件httpd.conf中修改即可三种模式参数设置。
2.1.winnt模式
设置processes1但是multiprocess为false
WSGIDaemonProcess example threads25
wsgi.multithread True
wsgi.multiprocess False如果显式地指出processes为1那么
WSGIDaemonProcess example processes1 threads25
wsgi.multithread True
wsgi.multiprocess True2.2.worker模式
WSGIDaemonProcess example processes2 threads25
wsgi.multithread True
wsgi.multiprocess True2.3.preforker模式
WSGIDaemonProcess example processes5 threads1
wsgi.multithread False
wsgi.multiprocess True后台模式由于是与apache进程分离了内存独立而且可以独立重启不会影响apache的进程如果你有多个项目django可以选择建立多个后台或者共同使用一个后台。比如在同一个VirtualHost里面不同的path对应不同的django项目可以同时使用一个Daemon
WSGIDaemonProcess default processes1 threads1 display-name%{GROUP}
WSGIProcessGroup default
WSGIScriptAlias /project1 /home/website/project1.wsgi
WSGIScriptAlias /project2 /home/website/project2.wsgi也可以把不同的项目分开分开使用不同的后台这样开销变大但就不会耦合在一起了。display-name是后台进程的名字这样方便重启对应的进程而不需要全部杀掉。
WSGIDaemonProcess site1 processes1 threads1 display-name%{GROUP}
WSGIDaemonProcess site2 processes1 threads1 display-name%{GROUP}
Location /project1
WSGIProcessGroup site1
/Location
WSGIScriptAlias /project1 /home/website/project1.wsgiLocation /project1
WSGIProcessGroup site2
/Location
WSGIScriptAlias /project2 /home/website/project2.wsgi2.4.小节
对于django 1.0以下的版本由于官方认定不是线程安全的所以建议使用多进程单线程模式。 processesn threads1 对于django 1.0以后就可以放心的使用多进程多线程模式。 processes2 threads64 这样子性能会更好。
3.apache配置参数
介绍apache常用参数设置如下内容 1Global Environment—全局环境配置决定Apache服务器的全局参数 2Main server configuration—主服务配置相当于是Apache中的默认Web站点如果我们的服务器中只有一个站点那么就只需在这里配置就可以。 3Virtual Hosts—虚拟主机虚拟主机不能与Main Server主服务器共存当启用了虚拟主机之后Main Server就不能使用。 3.1.全局参数
在出现错误页的时候是否显示服务器操作系统的名称ServerTokens Prod为不显示。
ServerTokens OS用于指定Apache的运行目录服务启动之后自动将目录改变为当前目录在后面使用到的所有相对路径都相对这个目录。
ServerRoot /etc/httpd记录httpd守护进程的pid号码文件这是系统识别一个进程的方法系统中httpd进程可以有多个但这个PID对应的进程是其它进程的父进程。
PidFile run/httpd.pid服务器与客户端断开的时间单位秒。
Timeout 60是否持续连接因为每次连接都得三次握手如果是访问量不大建议打开此项如果网站访问量比较大关闭此项比较好修改为KeepAlive On 表示允许程序性联机。
KeepAlive Off表示一个连接的最大请求数。
MaxKeepAliveRequests 100服务器在持久连接上等待后续请求的时间量。Apache将在关闭连接之前等待后续请求的秒数。将KeepAliveTimeout设置为高值可能会在负载很大的服务器上造成性能问题。超时越高就会有越多的服务器进程被占用等待与空闲客户机的连接。
KeepAliveTimeout 15系统默认的模块表示为每个访问启动一个进程即当有多个连接公用一个进程的时候在同一时刻只能有一个获得服务。StartServer开始服务时启动8个进程最小空闲5个进程最多空闲20个进程。MaxClients限制同一时刻客户端的最大连接请求数量超过的要进入等候队列。MaxRequestsPerChild每个进程生存期内允许服务的最大请求数量0表示永不结束。
IfModule prefork.c
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
/IfModuleApache配置线程访问即每对WEB服务访问启动一个线程这样对内存占用率比较小。ServerLimit服务器允许配置进程数的上限。ThreadLimit每个子进程可能配置的线程上限。StartServers启动两个httpd进程。MaxClients同时最多能发起250个访问超过的要进入队列等待其大小有ServerLimit和ThreadsPerChild的乘积决定。ThreadsPerChild每个子进程生存期间常驻执行线程数子线程建立之后将不再增加。MaxRequestsPerChild每个进程启动的最大线程数如达到限制数时进程将结束如置为0则子线程永不结束。
IfModule worker.c
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
/IfModule监听的端口如有多块网卡默认监听所有网卡。
Listen 80启动时加载的模块。
LoadModule auth_basic_module modules/mod_auth_basic.so
......
LoadModule version_module modules/mod_version.so加载配置文件。
Include conf.d/*.conf启动服务后转换的身份在启动服务时通常以root身份然后转换身份这样增加系统安全。
User apache
Group apache
3.2.主机参数
ServerAdmin rootlocalhost #管理员的邮箱
ServerName www.example.com:80 #域名端口
UseCanonicalName Off #规范名称
DocumentRoot /var/www/html #网页文件存放的目录根目录的权限设置
Directory / Options FollowSymLinks AllowOverride None
/Directory对/var/www/html目录的一个权限的设置options中Indexes表示当网页不存在的时候允许索引显示目录中的文件FollowSymLinks是否允许访问符号链接文件。有的选项有ExecCGI表是否使用CGI如Options Includes ExecCGI FollowSymLinks表示允许服务器执行CGI及SSI禁止列出目录。SymLinksOwnerMatch表示当符号链接的文件和目标文件为同一用户拥有时才允许访问。AllowOverrideNone表示不允许这个目录下的访问控制文件来改变这里的配置这也意味着不用查看这个目录下的访问控制文件修改为AllowOverride All 表示允许.htaccess。Order对页面的访问控制顺序后面的一项是默认选项如allowdeny则默认是denyAllow from all表示允许所有的用户通过和上一项结合可以控制对网站的访问控制。
Directory /var/www/html Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all
/Directory
是否允许用户访问其它目录默认是不允许。
IfModule mod_userdir.c UserDir disabled
/IfModule
如果允许访问用户其它目录中的网页文件则取消以上注释并对其中进行修改。
Directory /home/*/public_html AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Limit GET POST OPTIONS Order allow,deny Allow from all /Limit LimitExcept GET POST OPTIONS Order deny,allow Deny from all /LimitExcept
/Directory指定所要访问的主页的默认名称默认首页文件名为index.html。
DirectoryIndex index.html index.html.var定义每个目录下的访问控制文件名缺省为.htaccess。
AccessFileName .htaccess控制不让web上的用户来查看.htpasswd和.htaccess这两个文件。
Files ~ ^\.ht Order allow,deny Deny from all Satisfy All
/Files定义一些不在DocumentRoot下的文件而可以将其映射到网页根目录中这也是访问其他目录的一种方法但在声明的时候切记目录后面加”/”
Directory /var/www/icons Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all
/Directory4.总结
apache模块众多是一款稳定的开源web服务器其可以配置多进程和多线程拥有广泛的市场。