apache2.2支持worker,rewrite模块,支持线程

 

apache编译安装
//httpd2.2
./configure --prefix=/home/www --enable-rewrite --enable-so --with-mpm=worker --with-threads=yes


apache编译安装
//httpd2.2
./configure --prefix=/home/www --enable-rewrite --enable-so --with-mpm=worker --with-threads=yes

//lt_LogFormat
LogFormat "%h %l %u %{[%Y/%m/%d/%w:%H:%M:%S]}t "%r" %>s %b "%{User-agent}i"" combined
CustomLog "|/usr/local/sbin/cronolog /home/www20/logs/web-%Y%m%d.log" combined


//fj_LogFormat
LogFormat "%h %l %u %{,%a%Y/%m/%d:%H:%M:%S}t "%r" %>s %b "%{User-Agent}i"" common
CustomLog "|/usr/local/sbin/cronolog /home/www20/logs/web-%Y%m%d.log" common

<Directory "/var/www/html/web">
Options -Indexes FollowSymLinks
AllowOverride None
AuthType Basic
AuthName renzhen   
AuthUserFile /usr/local/apache/conf/pass
require valid-user + 用户   
</Directory>

cd /usr/local/apache/bin
./htpasswd -c /usr/local/apache/conf/pass +用户名
chown apache.apache /usr/local/apache/conf/pass

//http TRACE 跨站攻击
下面介绍一下怎样打开apache的mod_rewrite功能。
#tar -zxvf httpd-2.0.59.tar.gz
#cd httpd-2.0.59
#./configure -prefix=/opt/apache2 -enable-modules=so -enable-module=rewrite -enable-shared=rewrite -

enable-shared=max
#make
#make install
# httpd -l //看到有worker.c说明已经支持worker模块


apache安装完毕,下面来加载编译mod_rewrite.so这个模块。
#cd /soft/httpd-2.0.59/modules/mappers
#/opt/apache2/bin/apxs -c mod_rewrite.c -lgdbm
#gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
#/opt/apache2/bin/apxs -i -A -n rewrite mod_rewrite.so

是Apache, 在各虚拟主机的配置文件里添加如下语句:
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

//httpd2.2
修改$APACHE_HOME/conf/httpd.conf
#Include conf/extra/httpd-mpm.conf
取消前面注释

编辑conf/extra/httpd-mpm.conf
找到# worker MPM
MaxClients 150

在其前面添加
ServerLimit 16

============================================

编译多个apache

make clean; ./configure --prefix=/app/apache/apache_hd --enable-rewrite --enable-so --with-mpm=worker --with-threads=yes --enable-headers --enable-deflate ;make ;make install
make clean; ./configure --prefix=/app/apache/apache_hnd --enable- --enable-so --with-mpm=worker --with-threads=yes ;make ;make install
make clean; ./configure --prefix=/app/apache/apache_pd --enable-rewrrewriteite --enable-so --enable-headers --enable-deflate ;make ;make install
make clean; ./configure --prefix=/app/apache/apache_pnd --enable-rewrite --enable-so ;make ;make install
make clean; ./configure --prefix=/app/apache/apache_cache --enable-rewrite --enable-so --with-mpm=worker --with-threads=yes --enable-headers --enable-deflate --enable-cache --enable-disk-cache --enable-mem-cache;make ;make install

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GUI线程Worker线程是常见的多线程编程模型,用于实现图形用户界面(GUI)应用程序的并发处理。 1. GUI线程(也称为主线程):GUI线程负责处理用户界面的绘制、响应用户输入等任务。在大多数GUI框架中,GUI线程也是事件循环线程,负责监听和分发用户事件(如鼠标点击、键盘输入)并对其作出相应的响应。在这种模型下,GUI线程通常是单线程的,意味着在GUI线程中执行的任何耗时操作都会导致界面冻结,造成用户体验下降。 2. Worker线程Worker线程用于执行耗时的任务,以避免在GUI线程中阻塞。这些任务可以是计算密集型的操作,如图像处理、数据分析等,也可以是I/O密集型的操作,如文件读写、网络请求等。通过将这些任务放在Worker线程中执行,可以保持GUI线程的响应性,使用户能够继续与界面进行交互。 在实际开发中,通常采用以下方式来实现GUI线程Worker线程的协同工作: 1. 任务分发:GUI线程接收用户事件,并将耗时任务委托给Worker线程处理。这可以通过消息队列、事件驱动等机制来实现,GUI线程将任务放入队列中,Worker线程从队列中取出任务并执行。 2. 线程间通信:GUI线程Worker线程之间需要进行数据交换和同步。常见的线程间通信方式包括使用线程安全的队列、事件、互斥锁、条件变量等机制。 3. 界面更新:在Worker线程执行完耗时任务后,需要将结果返回给GUI线程,并更新界面显示。通常可以通过回调函数、信号槽机制等方式来实现。 需要注意的是,在多线程编程中,要注意线程安全性和资源管理,避免竞态条件、死锁等问题的发生。此外,对于一些特殊的操作,如对GUI组件的修改,可能需要在GUI线程中执行,以避免跨线程访问的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值