亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

建立一個帶寬、線程可控的下載型WEB網站

2024-07-26 00:31:35
字體:
來源:轉載
供稿:網友
APACHE+MySQL+php+PROFTPD+MOD_LIMITip+MOD_BANDWIDTH

一、前言

本人結合網上資料和個人的實踐,利用一個下午的時間寫出了這個適用于資源下載型網站的典型配置。這種配置的WEB網站初步實現了IP線程和線程流量的管理,同時proftpd用于上傳資源,ssh用于主機管理。無疑這樣可以自己支配寶貴的網絡帶寬,文章后面有個簡單的防火墻配置僅供參考,我用的linux版本是redhat as 3.0。希望大家在看了這篇文章后多多和我交流, MAIL:LLZQQ@163.COM

二、軟件版本

apache-1.3.29
mysql-4.0.16
php-4.3.4
proftpd-1.2.9
mod_limitipconn-0.04
mod_bandwidth-2.0.4

三、安裝配置Mysql

# cd mysql-4.0.16

# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data
--disable-maintainer-mode –with-mysqld-user=mysql --enable-large-files-without-debug

# make
# make install

添加mysql用戶

# /usr/sbin/groupadd mysql

Then we create a user called mysql which belongs to the mysql group;

# /usr/sbin/useradd -g mysql mysql

安裝數據庫文件:

#./scripts/mysql_install_db

設置文件權限:

# chown -R root:mysql /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql/data

配置ld.so.conf

# vi /etc/ld.so.conf

增加下面一句:

/usr/local/mysql/lib/mysql

建立mysql的啟動文件:

# cp support-files/mysql.server /etc/init.d/mysql
# cp support-files/my-medium.cnf /etc/my.cnf

以安全模式啟動mysql:

# /usr/local/mysql/bin/mysqld_safe –user=mysql &

設置mysql的root密碼:

# /usr/local/mysql/bin/mysqladmin -u root passWord new_password

把mysql服務設置為開機啟動:

# chmod 755 /etc/init.d/mysql
# chkconfig –-add mysql
# chkconfig mysql on


四、安裝配置PHP

#cd php-4.3.4

#./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql

#make
#make install

建立php的配置文件:

# cp php.ini-dist /usr/local/php/lib/php.ini

修改php的配置文件:

#vi /usr/local/php/lib/php.ini

doc_root= “/home/www/”
file_uploads=Off
register-golbals = On

建立測試php頁面

# vi /home/www/test.php

<?php phpinfo(); ?>

# chomd 755 /home/www/test.php


五、安裝apache-1.3.29

# tar zvxf apache_1.3.29.tar.gz
# cd apache_1.3.29
# cp ../mod_bandwidth.c mod_bandwidth.c

修改src/include/httpd.h 增大最大線程數
# vi src/include/httpd.h

修改其中的
#define HARD_SERVER_LIMIT 256

#define HARD_SERVER_LIMIT 2560

# ./configure --prefix=/usr/local/apache --enable-module=so
--enable-module=rewrite --enable-shared=max
--htdocsdir=/home/www --add-module=mod_bandwidth.c
--permute-module=BEGIN:bandwidth

# make
# make install

建立啟動文件:

#cp apachectl /etc/init.d/httpd

修改apache的配置文件:

#vi /usr/local/apache/conf/httpd.conf

修改、添加和確認存在下列配置項:

addDefaultCharset GB2312 注釋掉“addDefaultCharset ISO8859*”
ExtendedStatus On
LoadModule php4_module modules/libphp4.so
DirectoryIndex index.html index.html.var index.php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
LoadModule limitipconn_module libexec/mod_limitipconn.so
AddModule mod_limitipconn.c

安裝mod_limitipconn-0.04

# tar xzf mod_limitipconn-0.04.tar.gz
# cd mod_limitipconn-0.04
# vi Makefile

APXS = /usr/local/apache/bin/apxs

# make
# make install

使用mod_limitip模塊需要在httpd.conf中增加這個設置

<IfModule mod_limitipconn.c>
<Location /home/www/> 設置要控制的目錄
MaxConnPerIP 2 限制每個IP的最大線程數
</Location>
</IfModule>

完成mod_bandwidth模塊的安裝

創建 mod_bandwidth 運行需要的目錄

mkdir /var/apachebw
mkdir /var/apachebw/link
mkdir /var/apachebw/master
chmod -R 777 /var/apachebw

修改httpd.conf增加下列內容

<IfModule mod_bandwidth.c>
BandWidthDataDir "/var/apachebw/"
BandWidthModule on

<Directory /home/www>
BandWidth 192.168.0 0 200000 制局域網內用戶的下載速度為200k
BandWidth all 51200 限制其他用戶的下載速度為每秒 51200 字節
</Directory>

</IfModule>

修改/etc/init.d/httpd

# vi /etc/init.d/httpd

在三行之后添加如下內容:
#!/bin/sh
#
# Startup script for the Apache Web Server
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve /
# HTML files and CGI.
# processname: httpd
# pidfile: /usr/local/apache/log/httpd.pid
# config: /usr/local/apache/conf/httpd.conf

把apache服務設置為開機啟動:

# chkconfig –-add httpd
# chmod 755 /etc/init.d/httpd
# chkconfig httpd on

六、安裝porftpd-1.2.9

# tar –zxvf proftpd-1.2.9.tar.gz
# cd proftpd-1.2.9
# ./configure --prefix=/usr/local/proftpd
# make
# make install 

建立啟動文件、把proftpd設置為開機啟動

# cp ./contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd


# chkconfig --add proftpd
# chmod 755 /etc/rc.d/init.d/proftpd

# vi /etc/rc.d/init.d/functions
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/proftpd/
sbin"

# vi /etc/rc.d/init.d/proftpd
config: /usr/local/proftpd/etc/proftpd.conf
PATH="$PATH:/usr/local/proftpd/sbin"

# chkconfig proftpd on

建立帳號和目錄:

# mkdir /home/test
# chmod 755 /home/test
# adduser -d /home/test -g ftp -s /sbin/nologin test
# passwd test

# adduser -d /home/upload -g ftp -s /sbin/nologin upload
# passwd upload

配置/usr/local/proftpd/etc/proftpd.conf,禁用匿名登陸

ServerName "llzqq's ftp service"
ServerType standalone
DefaultServer on

# Port 21 is the standard FTP port.
Port 21

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022

MaxInstances 10

# Set the user and group under which the server will run.
User nobody
Group ftp

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~

# Normally, we want files to be overwriteable.
<Directory />
AllowOverwrite on
</Directory>

# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message
RequireValidShell no

#Limit User of being enbled login ftp server
<Limit LOGIN>
AllowGroup ftp
DenyAll
</Limit>
#
<Directory /home/test>
<Limit WRITE>
DenyGroup ftp
</Limit>
TransferRate RETR 51200 group ftp
</Directory>
<Directory /home/upload>
<Limit RMD RNFR DELE RETR>
DenyGroup ftp
</Limit>
TransferRate STOR 256000 group ftp
</Directory>

ServerIdent off
MaxClientsPerHost 2
TimeoutIdle 600
TimeoutLogin 300
TimeoutNoTransfer 300
TimeoutStalled 300


七、reboot計算機

# shutdown –r now

打開瀏覽器輸入:http://loaclhost/test.php

如果你看到了關于:mysql;apache;php的一大堆信息,恭喜,你的安裝基本上成功了,下一步可以測試一下proftp和帶寬的設置了。


八、建立一個簡單有效的防火墻

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 >/proc/sys/net/ipv4/conf/all/accept_redirects
echo 1 >/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 1 >/proc/sys/net/ipv4/conf/all/log_martians

iptables -F
iptables -X
iptables -Z

iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP

##
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## Loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

## SYN-Flooding
iptables -N syn-flood
iptables -A INPUT -i eth0 -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -j DROP

## Make sure that new TCP connections are SYN packets
iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP

## HTTP
iptables -A INPUT -i eth0 -p tcp -d 0/0 --dport 80 -j ACCEPT

## IP packets limit
iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 3 -j ACCEPT

## FTP service
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT

## SSH login
iptables -A INPUT -i eth0 -m mac --mac-source 00:00:00:00:00:00 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j DROP

## Anything else not allowed
iptables -A INPUT -i eth0 -j DROP



九、附錄:

mod_bandwidth選項簡單說明:

BandWidthPulse
格式: BandWidthPulse <毫秒(千分之一秒>
默認: 1000
上下文: per server config

改變計算帶寬的時間間隔,默認為1000毫秒(1秒)。使用更低的間隔可以獲得
更精確的帶寬控制,但消耗更多的CPU時間,反之亦然。

BandWidth
格式: BandWidth <domain|ip|all> <速率>
默認: 無
上下文: per directory, .htaccess

限制這個目錄下文件下載的速率。

domain 指定來自哪個域的連接受到這個設置的影響。
ip 指定來自哪個ip地址(或者ip段)的連接受到影響。
all 所有連接都受到影響。

示例:

<Directory />
# 來自 dualface.com 的連接不限制下載速度
BandWidth dualface.com 0
# 來自 192.168.0.0/16(或者192.168.0) 網段的連接不限制下載速度
BandWidth 192.168.0.0/16 0
# 其他連接限制下載速度為每秒1024字節
BandWidth all 1024
# 越前面的設置優先權越高
</Directory>

LargeFileLimit
格式: LargeFileLimit <文件大小> <速率>
默認: 無
上下文: per directory, .htaccess

對于超過指定大小的文件,下載時使用的速率。如果速率設置0即不限制速度,
但下載速度仍然要受到BandWidth設置的影響。如果設置成-1,則完全不受影響。
通過設置不同的文件大小和速率,可以設置不同大小范圍內文件的下載速度。

示例:

文件尺寸大于等于200千字節的文件,下載速率為每秒3072字節
LargeFileLimit 200 3072
LargeFileLimit 1024 2048
MaxConnection
格式: MaxConnection <連接數>
默認: 0 (不限制)
上下文: per directory, .htaccess

當超過指定連接數時,拒絕新的連接。

MinBandWidth
格式: MinBandWidth <domain|ip|all> <速率>
默認: all 256
上下文: per directory, .htaccess

設置最小帶寬,默認為每秒256字節。根據BandWidth和LargeFileLimit設置的速
率。mod_bandwidth會計算允許的連接數。例如BandWidth為4096字節,而
MinBandWidth為1024字節,則最大并發連接數為4。

Mod_limitipconn選項簡單說明:

<Location / > 設置要控制的目錄
MaxConnPerIP 2 限制單IP并發連接數
NoIPLimit image/* 不受限制的文件類型
</Location>
<Location /mp3>
MaxConnPerIP 1
OnlyIPLimit audio/mpeg video 僅用于限制的文件類型
</Location>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97精品国产91久久久久久| 欧美日韩国产第一页| 亚洲色图色老头| 日韩欧美成人免费视频| 久久精品国产久精国产一老狼| 国产精品久久久久久久久借妻| 欧美成人全部免费| 成人免费看吃奶视频网站| 国产不卡一区二区在线播放| 九色成人免费视频| 亚洲第一精品福利| 国产极品jizzhd欧美| 久久久久久久网站| 欧美精品久久久久久久久久| 精品福利视频导航| 亚洲精品91美女久久久久久久| 欧美性xxxxx极品娇小| 色妞一区二区三区| 热久久免费国产视频| 国产色综合天天综合网| 日韩视频免费观看| 岛国av一区二区三区| 日本国产精品视频| 久久成人精品一区二区三区| 久久天天躁狠狠躁夜夜躁| 色中色综合影院手机版在线观看| 国产亚洲欧洲在线| 日韩成人在线视频| 中文国产成人精品久久一| 亚洲第一精品久久忘忧草社区| 高清亚洲成在人网站天堂| 欧美一级在线亚洲天堂| 日韩在线观看免费全集电视剧网站| 欧美亚洲视频一区二区| 久久久久久久国产精品视频| 国产精品高潮呻吟视频| 午夜精品久久久久久久久久久久久| 日韩精品免费在线视频| 久久精品欧美视频| 国产免费一区二区三区在线能观看| 久久成人人人人精品欧| 在线观看日韩欧美| 午夜精品久久久久久久白皮肤| 亚洲欧洲自拍偷拍| 精品国产一区二区三区久久久| 国产精品1234| 日韩精品一区二区三区第95| 日韩av网站在线| 亚洲欧美中文在线视频| 国产精品永久在线| 国产精品国产三级国产aⅴ浪潮| 亚洲一区二区中文字幕| 国产精品视频99| 日韩黄色在线免费观看| 久久亚洲欧美日韩精品专区| 国产成人精品视频在线观看| 久久久久久久久久av| 45www国产精品网站| 亚洲在线观看视频| 国产精品免费久久久久影院| 久久久精品免费视频| 日韩经典中文字幕| 上原亚衣av一区二区三区| 奇米四色中文综合久久| 亚洲一区二区三区视频播放| 国产偷亚洲偷欧美偷精品| 欧美一级黄色网| 国产精品自产拍在线观看中文| 91久久精品国产91性色| 久久露脸国产精品| 日韩欧美一区二区三区| 在线电影中文日韩| 欧美大全免费观看电视剧大泉洋| 欧美亚洲成人免费| 日韩电影第一页| 国产区精品视频| 国产精品视频男人的天堂| 色综合久久久888| 亚洲欧美日韩一区二区在线| 日韩成人免费视频| 成人性生交大片免费观看嘿嘿视频| 1769国产精品| 日本成人精品在线| 欧美在线精品免播放器视频| 精品久久久久久久久久久久久| 欧美日韩爱爱视频| 欧美亚洲另类制服自拍| 亚洲第一天堂av| 日韩av电影院| 亚洲最大在线视频| 亚洲成人网在线观看| 国产精品免费观看在线| 日韩成人av在线播放| 欧美午夜激情小视频| 国产精品www网站| 日韩av在线影院| 岛国视频午夜一区免费在线观看| 亚洲乱码一区av黑人高潮| 97精品视频在线观看| 欧美在线视频免费观看| 欧美日韩成人在线播放| 亚洲欧美一区二区三区情侣bbw| 亚洲精品久久久一区二区三区| 亚洲国产精品中文| 一色桃子一区二区| 伊人伊人伊人久久| 亚洲石原莉奈一区二区在线观看| 欧美乱妇高清无乱码| 性欧美亚洲xxxx乳在线观看| 国产精品视频久久| 亚洲一级免费视频| 国产中文字幕亚洲| 国产精品狼人色视频一区| 国产视频久久久久| 国产视频在线观看一区二区| 欧美高清在线观看| 欧美精品在线播放| 8090成年在线看片午夜| 国产精品女视频| 国产精品草莓在线免费观看| 超碰精品一区二区三区乱码| 69久久夜色精品国产7777| 欧美国产乱视频| 国产中文字幕91| 久久艹在线视频| 日韩有码在线播放| 国产精品老女人精品视频| 国产精品扒开腿做爽爽爽男男| 日韩精品一区二区视频| 亚洲石原莉奈一区二区在线观看| 国产精品一久久香蕉国产线看观看| 91亚洲精品视频| 青青久久av北条麻妃海外网| 91精品国产高清久久久久久| 欧美黑人性视频| 久久精品99无色码中文字幕| 欧美成人午夜激情视频| 国产精品日韩精品| 57pao成人永久免费视频| 成人高h视频在线| 91精品久久久久久久久久| 色偷偷91综合久久噜噜| 欧美壮男野外gaytube| 欧美成人一二三| 亚洲大尺度美女在线| www.亚洲免费视频| 中文字幕av一区二区| 国产va免费精品高清在线| 国产精品日韩在线观看| 国产在线播放不卡| 日韩精品中文字幕有码专区| 亚洲一区二区三区视频| 欧美日韩激情美女| 日日狠狠久久偷偷四色综合免费| 日韩在线观看免费av| 98视频在线噜噜噜国产| 日韩在线视频观看正片免费网站| 亚洲国产天堂久久综合| 日韩欧美国产一区二区| 国产成人91久久精品| 欧美国产日本在线| 亚洲福利视频免费观看| www国产精品视频| 欧美电影免费观看高清|