标签归档:Apache

Linux下安装mod_bw和mod_limitipconn限制apache并发连接和下载速度

mod_limitipconn,这个是Apache的一个非官方模块,根据同一个来源IP进行并发连接控制,Bw_mod,它可以根据来源IP进行带宽限制,它们都是apache的第三方模块。
1.下载: wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz
2.安装#tar -zxvf mod_limitipconn-0.22.tar.gz
#cd mod_limitipconn-0.22
#vi Makefile
修改:apxs = “/usr/local/apache2/bin/apxs” # 这里是自己apache的apxs路径,加载模块或者#/usr/local/apache2/bin/apxs -i -c -a mod_limitipconn.c 来加载模块
#make
#make install#tar -xvf mod_bw-0.7.tgz
#cd mod_bw
#/usr/local/apache2/bin/apxs -i -c -a /home/kenami/mod_bw/mod_bw.c下面用vi打开apache 的配置文件 httpd.conf发现了以下两行:LoadModule limitipconn_module modules/mod_limitipconn.so

LoadModule bw_module modules/mod_bw.so
3.配置
<IfModule mod_limitipconn.c>
<Location /home/[email protected]/attachments/month _*> #需要控制的路径
MaxConnPerIP 3 #限制的线程数
NoIPLimit index.htm #对此文件不做限制
</Location>
</IfModule>在虚拟主机配置文件下面加上: BandwidthModule On
ForceBandWidthModule On
Bandwidth all 10000 #限速10K
MinBandwidth all -1
配置参数说明如下:
a. BandWidthModule On|Off//是否开启mod_bw的带宽限制功能。
b. BandWidth [From] [bytes/s] 设置指定客户机最大带宽,0表示不限制 BandWidth u:[User-Agent] [bytes/s]
c. MinBandWidth [From] [bytes/s] 设置指定客户机带宽的最小值,为0表示每个客户端带宽最大为256bytes/s,为-1表示最大为BandWith的值
d. LargeFileLimit [Type] [Minimum Size] [bytes/s] 设置访问超出特定大小的某种文件的最大带宽,文件类型大小单位为kbytes
e. MaxConnection [From] [Max] 设置指定客户机的最大并发连接数
f. ForceBandWidthModule [On|Off] 默认bw模块将应用所有请求,On可设置过滤类型关于From,即客户端来源可分以下几种情况:IP指定单一主机192.168.1.22指定网段192.168.1.0/24或192.168.1.0/255.255.255.0域名单一主机Client1.phpddt.com域名指定范围.phpddt.com所有客户端all以上配置既可以针对所有客户端,也可以对某个虚拟主机进行配置实例一:BandWidthModule OnBandWidth all 307200BandWidth 192.168.1.2 102400BandWidth “u:^Mozilla/5(.*)” 102400BandWidth “u:wget” 204800ForceBandWidthModule OnLargeFileLimit .avi 600 204800MaxConnection all 100MaxConnnection 192.168.1.2 5以上的配置含义:开启mod_bw, 限制所有文件类型也开启了所有客户端最大带宽为300k,最大并发连接为100192.168.1.2的最大带宽为100k,最大并发连接为5使用FireFox的客户端最大带宽为100k使用wget的客户端最大带宽为200k对超过600k的avi格式的文件最大带宽为200kbyte/s实例二:<Virtualhost *> BandwidthModule On ForceBandWidthModule On LargeFileLimit .avi 1 20000 LargeFileLimit .mpg 1 20000 Servername www.phpddt.com</Virtualhost>该实例对虚拟主机进行了限制,指定的文件类型avi和mpg最大带宽为20K,ForceBandWidthModule On必须有。实例三:<Virtualhost *> BandwidthModule On AddOutputFilterByType MOD_BW text/html text/plain Bandwidth all 5000 Servername www.phpddt.com </Virtualhost>

 

用phpMyadmin创建MySQL数据库及独立数据库帐号的图文教程

在一个服务器上一般来讲都不止一个站点,更不止一个MySQL(和PHP搭配之最佳组合)数据库。
为了防止安全隐患,我们一般针对每个数据库都设置了独立的数据库访问帐号,该帐号仅有访问该数据库的权限。下面就让我们来具体演示一下:

1、首先我们要登陆php(做为现在的主流开发语言)MyAdmin,不做演示。

2、创建一个数据库,如下图,在php(做为现在的主流开发语言)MyAdmin右边窗口中,填写数据库名称,点创建即可。 



例如我们这里创建一个名字为:cncmstest 的数据库

创建成功会有如下提示:

3、点击左上角的主页按钮,返回php(做为现在的主流开发语言)MyAdmin主界面:

4、在主界面的右边点击“权限”来创建数据库帐号。

5、在权限页面中,我们点击“添加新用户”

6、在该页面中,我们填写要创建的数据库用户名,该用户的访问范围,及密码。



如上图,我们填写了用户名为:cncmsuser,该数据库用户只允许本机访问,主机一项选择本地;密码我们使用自动生成的,点下面的“Generate”会生成一个随机密码,然后点“Copy”会自动填写到密码框中。

下面的框都不选,直接拉到页面最下面点执行即可创建一个新用户。

数据库用户创建成功,会返回如下页面:

7、最重要的一步,设置该用户的数据库访问权限

在数据库用户添加成功返回的页面中可以直接设置权限。这里我们选择按数据库指定权限:



如上图,在数据库列表中选择我们刚刚创建的cncmstest,即会自动进入该数据库的权限设置页面。



在上图的权限设置中,我们把“数据”、“结构”两列的权限全部选中,管理权限都不要选。点执行即可。

到这里,我们已经全部设置完毕了,创建了一个数据库:cncmstest,并创建了数据库用户cncmsuser,特别指定了该用户只对cncmstest的访问权限。如此,便达到了我们一开始所讲的目的:为每一个数据库指定独立的用户访问权限。

Apache转发实现IIS和Apache共享80端口

因为只有一台服务器(Windows 2003 Server)既需要在上面跑ASP程序,又需要在上面跑PHP应用,又不想用IIS跑PHP应用,还有就是不想把ASP程序跑在Apache上,就需要一个Apache与IIS共存的方案。

IIS是Windows 2003 Server自带的IIS 6.0。
Apache是Apache 2.2.8。
首先当然是下载并安装Apache。
接着开始先把自动启动的IIS服务器停下来,修改IIS的端口为非80(比如81)。
再接着打开Apache的httpd.conf文件开始配置。
要让Apache支持转发也就是做IIS的代理那么就要先启用Apache的代理模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
完成了代理模块的启用,那么我们开始配置虚拟主机。
先包含httpd-vhosts.conf文件
Include conf/extra/httpd-vhosts.conf
保存httpd.conf,打开httpd-vhosts.conf文件
开始配置虚拟机
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName   
    DocumentRoot  "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
</VirtualHost >
<VirtualHost *:80>
    ProxyPreserveHost On
    ServerName www.datarelab.com
    DefaultLanguage zh-CN
    AddDefaultCharset GB2312
    ProxyPass / http://www.datarelab.com:81
    ProxyPassReverse / http://www.datarelab.com:81
</VirtualHost>
配置完成并保存httpd-vhosts.conf。
开始重启Apache服务器和IIS服务器。
我们通过访问过去就会看到IIS的默认页面。