网站运维、系统运维管理研究
2008/04/26L i n u x系统

1条评论
76 views

Linux查看文件夹大小的命令

查看linux文件目录的大小和文件夹包含的文件数

统计总数大小

du -sh xmldb/

du -sm * | sort -n //统计当前目录大小 并安大小 排序

du -sk * | sort -n

du -sk * | grep guojf //看一个人的大小

du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字

查看此文件夹有多少文件 /*/*/* 有多少文件

du xmldb/

du xmldb/*/*/* |wc -l

40752

解释:

wc [-lmw]

参数说明:

-l :多少行

-m:多少字符

-w:多少字

2008/04/22L i n u x系统

没有评论
60 views

利用Nginx替代apache实现高性能的Web环境

利用Nginx替代apache实现高性能的Web环境

更新时间:2007-11-27

作者:NetSeek

欢迎转载,转载请注明出处: http://bbs.linuxpk.com

原文链接:http://bbs.linuxpk.com/thread-11845-1-1.html

Nginx介绍:

Nginx发音为[engine x],是由俄罗斯人Igor Sysoev建立的项目,基于BSD许可。

据说他当初是F5的成员之一,英文主页:http://nginx.net。俄罗斯的一些大网站已经使用它超过两年多了, 一直表现不凡,相信想了解nginx的朋友都读过阿叶大哥的利用nginx实现负载均衡的文章相关链接见(六)。

测试环境:红动中国(redocn)提供运营服务器环境.

关于红动服务环境:

红动中国在早期利用apache环境,再加上一些优化的工作,一直是相对很稳定,但是最近由于网站发展,访问量越来越大,在线人数一多经常出现,负载过高,性能急剧下降,经过双木站长的同意,考虑是否能利用nginx来代替apache,经过长时间的观察目前nginx工作很稳定,系统也不会再说现高负载的状况,占用内存也很低,访问速率从用户体验来看明显有提升.

关于红动中国:

红动中国(redocn)论坛经过近1年的快速发展,目前日均页面访问量超过100万,位居全球设计论坛(中文)第1位,是国内最具影响力的设计论坛之一。目前论坛拥有近20万会员,包括众多设计界领军人物在内的行业中坚力量、相关艺术院校师生以及部分设计爱好者等。

迁移目标:实现网站论坛静态化,防盗链,下载并发数和速率限制,实现原站apache所具有的所有功能,将原apache环境下的站点全部迁移到Nginx

一.PHP(Fastcgi)编译安装

[root@att php-5.2.4]# cat in.sh

./configure

–prefix=/usr/local/php-fcgi

–enable-fastcgi

–enable-discard-path

–enable-force-cgi-redirect

–with-config-file-path=/usr/local/php-fcgi/etc

–enable-zend-multibyte

–with-mysql=/usr/local/mysql

–with-libxml-dir=/usr/local/libxml2

–with-gd=/usr/local/gd2

–with-jpeg-dir

–with-png-dir

–with-bz2

–with-freetype-dir

–with-iconv-dir

–with-zlib-dir

–with-openssl=/usr/local/openssl

–with-mcrypt=/usr/local/libmcrypt

–enable-sysvsem

–enable-inline-optimization

–enable-soap

–enable-gd-native-ttf

–enable-ftp

–enable-mbstring

–enable-exif

–disable-debug

–disable-ipv6

make

make install

cp php.ini-dist /usr/local/php-fcgi/etc/php.ini

注:关于如何安装gd库,mysql的编译安装,本文将不介绍,本文重点在于介绍nginx的安装与配置,如想了解其它相关的问题可以到

LinuxPk去找相关的贴子(http://bbs.linuxpk.com)

二.Nginx编译安装

1.创建nginx运行用户和虚拟主机目录

groupadd www -g 48

useradd -u 48 -g www www

mkdir -p /data/www/wwwroot

chown -R www:www /data/www/wwwroot

2.安装lighttpd中附带的spawn-fcgi,用来启动php-cgi

先编译安装lighttpd产生spawn-fcgi二进制文件.

cd /usr/local/src/lighttpd-1.4.18

cp src/spawn-fcgi /usr/local/php-fcgi/bin/

启动php-cgi进程,监听127.0.0.1的8085端口,进程数为250(如果服务器内存小于3GB,可以只开启25个进程),用户为www:

/usr/local/php-fcgi/bin/spawn-fcgi -a 127.0.0.1 -p 8085 -C 250 -u www -f /usr/local/php-fcgi/bin/php-cgi

3.nginx的安装与配置

安装Nginx所需的pcre库:

http://ftp.dk.debian.org/exim/pcre/pcre-7.3.tar.gz

tar zxvf pcre-7.2.tar.gz

cd pcre-7.2/

./configure

make && make install

cd ../

http://sysoev.ru/nginx/nginx-0.5.32.tar.gz

tar zxvf nginx-0.5.32.tar.gz

cd nginx-0.5.32

./configure –user=www –group=www –prefix=/usr/local/nginx/ –with-http_stub_status_module –with-

openssl=/usr/local/openssl

make && make install

此模块非核心模块,需要在编译的时候手动添加编译参数 –with-http_stub_status_module

配置nginx

三.Nginx主配置文件及PHP支持.

1.nginx.conf 主配置文件的配置

#cd /usr/local/nginx/conf/

#cp nginx.conf nginx.conf.cao

#cat /dev/null > nginx.conf

#vi nginx.conf //主配置文件

user www www;

worker_processes 10;

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

pid /var/run/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.

worker_rlimit_nofile 51200;

events

{

use epoll;

#maxclient = worker_processes * worker_connections / cpu_number

worker_connections 51200;

}

http

{

include conf/mime.types;

default_type application/octet-stream;

log_format main '$remote_addr – $remote_user [$time_local] $request '

'"$status" $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

#access_log /data/www/logs/access.log main;

#sendfile on;

tcp_nopush on;

tcp_nodelay off;

keepalive_timeout 60;

client_header_timeout 3m;

client_body_timeout 3m;

send_timeout 3m;

connection_pool_size 256;

client_header_buffer_size 1k;

large_client_header_buffers 4 2k;

request_pool_size 4k;

output_buffers 4 32k;

postpone_output 1460;

client_max_body_size 10m;

client_body_buffer_size 256k;

client_body_temp_path /dev/shm/client_body_temp;

proxy_temp_path /usr/local/nginx/proxy_temp;

fastcgi_temp_path /usr/local/nginx/fastcgi_temp;

#gzip

gzip on;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_proxied any;

gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

gzip_min_length 1100;

gzip_buffers 4 8k;

# The following includes are specified for virtual hosts //以下是加载虚拟主机配置.

#www.redocn.com

include conf/vhosts/www_redocn_com.conf;

#bbs.redocn.com

include conf/vhosts/bbs_redocn_com.conf;

#blog.redocn.com

include conf/vhosts/boblog_redocn_com.conf;

#down.redocn.com

include conf/vhosts/down_redocn_com.conf;

}

2.配置支持Fastcgi模式的PHP

[root@redocn conf]# cat enable_php5.conf

fastcgi_pass 127.0.0.1:8085;

fastcgi_index index.php;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;

fastcgi_param SERVER_SOFTWARE nginx;

#new ac upload

#fastcgi_pass_request_body off;

#client_body_in_file_only clean;

#fastcgi_param REQUEST_BODY_FILE $request_body_file;

#

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param DOCUMENT_URI $document_uri;

fastcgi_param DOCUMENT_ROOT $document_root;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with –enable-force-cgi-redirect

fastcgi_param REDIRECT_STATUS 200;

四,多虚拟主机应用配置案例.

#mkdir /usr/local/nginx/conf/vhosts //建立虚拟主机配置存放目录.

1.www.redocn.com //首站配置

[root@redocn vhosts]#vi www_redocn_com.conf

server

{

listen 80;

server_name www.redocn.com;

index index.html index.htm index.php;

root /data/www/wwwroot;

error_page 404 http://bbs.redocn.com;

rewrite ^/bbs/(.*) http://bbs.redocn.com/$1;

location ~ .*.php?$

{

include conf/enable_php5.conf;

}

}

注: 关于rewite需求,红动中国希望当用户访问http://www.redocn.com/bbs的时候自动转至http://bbs.redocn.com

在原apache中利用redirect实现

Redirect /bbs http://bbs.redocn.com

本文中在nginx下利用rewrite实现:

rewrite ^/bbs/(.*) http://bbs.redocn.com/$1;

2.[root@redocn vhosts] vi bbs_redocn_com.conf

server

{

listen 80;

server_name bbs.redocn.com yan.redocn.com majia.redocn.com wt.redocn.com;

index index.html index.htm index.php;

root /home/www/htdocs/bbs;

access_log /var/log/nginx/access_bbs.redocn.com.log combined;

location / {

#bbs rewrite

rewrite ^/archiver/((fid|tid)-[w-]+.html)$ /archiver/index.php?$1 last;

rewrite ^/forum-([0-9]+)-([0-9]+).html$ /forumdisplay.php?fid=$1&page=$2 last;

rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page\%3D$3&page=$2 last;

rewrite ^/space-(username|uid)-(.+).html$ /space.php?$1=$2 last;

rewrite ^/tag-(.+).html$ /tag.php?name=$1 last;

break;

#error

error_page 404 /index.php;

#redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

#Preventing hot linking of images and other file types

location ~* ^.+.(gif|jpg|png|swf|flv|rar|zip)$ {

valid_referers none blocked server_names

*.redocn.com redocn.com *.taobao.com taobao.com

bbs.blueidea.com bbs.asiaci.com bbs.arting365.com forum.chinavisual.com softbbs.pconline.com.cn

bbs.chinaddu.com bbs.photops.com *.baidu.com *.google.com *.google.cn *.soso.com *.yahoo.com.cn

*.yahoo.cn;

if ($invalid_referer) {

rewrite ^/ http://www.redocn.com/images/redocn.gif;

#return 403;

}

}

#support php

location ~ .*.php?$

{

include conf/enable_php5.conf;

}

}

注:

1.红动中国采用高性能的Discuz!论坛,原apache的rewrite规则几乎不要做什么修改即可全部移植到nginx下.

静态化配置见面上面的:#bbs rewrite部分.

2.一般论坛都希望实现防盗链功能,在apache很轻松实现?在nginx下是否容易实现呢?答案是肯定的.

#Preventing hot linking of images and other file types

valid_referers none blocked server_names *.redocn.com redocn.com …你允许连接的网址;

if ($invalid_referer) {

rewrite ^/ http://www.redocn.com/images/redocn.gif; //让别人盗链时显示你指定的图片.

#return 403;

}

3.blog.redocn.com

[root@redocn vhosts]#vi boblog_redocn_com.conf

server

{

listen 80;

server_name blog.redocn.com;

index index.html index.htm index.php;

root /data/www/wwwroot/blog;

error_page 404 http://bbs.redocn.com;

#supsite rewrite

rewrite ^([0-9]+)/spacelist(.*)$ index.php?$1/action_spacelist$2;

rewrite ^([0-9]+)/viewspace_(.+)$ index.php?$1/action_viewspace_itemid_$2;

rewrite ^([0-9]+)/viewbbs_(.+)$ index.php?$1/action_viewbbs_tid_$2;

rewrite ^([0-9]+)/(.*)$ index.php?$1/$2;

rewrite ^([0-9]+)$ index.php?$1;

rewrite ^action_(.+)$ index.php?action_$1;

rewrite ^category_(.+)$ index.php?action_category_catid_$1;

rewrite ^itemlist_(.+)$ index.php?action_itemlist_catid_$1;

rewrite ^viewnews_(.+)$ index.php?action_viewnews_itemid_$1;

rewrite ^viewthread_(.+)$ index.php?action_viewthread_tid_$1;

rewrite ^index([.a-zA-Z0-9]*)$ index.php;

rewrite ^html/([0-9]+)/viewnews_itemid_([0-9]+).html$ index.php?action_viewnews_itemid_$2;

rewrite ^/([0-9]+)/spacelist(.+)$ /index.php?uid/$1/action/spacelist/type$2;

rewrite ^/([0-9]+)/viewspace(.+)$ /index.php?uid/$1/action/viewspace/itemid$2;

rewrite ^/([0-9]+)/viewbbs(.+)$ /index.php?uid/$1/action/viewbbs/tid$2;

rewrite ^/([0-9]+)/(.*)$ /index.php?uid/$1/$2;

rewrite ^/([0-9]+)$ /index.php?uid/$1;

rewrite ^/action(.+)$ /index.php?action$1;

rewrite ^/category(.+)$ /index.php?action/category/catid$1;

rewrite ^/viewnews(.+)$ /index.php?action/viewnews/itemid$1;

rewrite ^/viewthread(.+)$ /index.php?action/viewthread/tid$1;

rewrite ^/mygroup(.+)$ /index.php?action/mygroup/gid$1;

location ~ .*.php?$

{

include conf/enable_php5.conf;

}

}

注:blog采用功能强大的Supesite作为Blog站点: http://www.supesite.com/

1.Blog如何在Nginx里实现静态化,具体设置见,上面的#supesite rewrite

4.down.redocn.com

[root@redocn vhosts]# vi down_redocn_com.conf

limit_zone one $binary_remote_addr 10m;

server

{

listen 80;

server_name down.redocn.com;

index index.html index.htm index.php;

root /data/www/wwwroot/down;

error_page 404 /index.php;

# redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

#Zone limit

location / {

limit_conn one 1;

limit_rate 20k;

}

# serve static files

location ~ ^/(images|javascript|js|css|flash|media|static)/ {

root /data/www/wwwroot/down;

expires 30d;

}

}

注:

由于现在的BT下载软件越来越多了,我们如何限制下载的并发数和速率呢?apache需要三方模块,nginx就不用了

在nginx利用两个指令即可实现:limit_zone(limit_conn) 来限制并发数,limit_rate来限制下载的速率,请看上面的配置实例.

5.启动nginx服务

/usr/local/php-fcgi/bin/spawn-fcgi -a 127.0.0.1 -p 8085 -C 250 -u www -f/usr/local/php-fcgi/bin/php-cgi

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

你可以把上面两条命令制做成系统启动服务脚本,相关的脚本在网上也很多,本文就不再贴出来了,给出一个实例链接:

http://topfunky.net/svn/shovel/nginx/init.d/nginx

五.问题及经验总结:

1.安装Discuz论坛后,无法上传大于M以上的附件?

在主配置文件里加入:client_max_body_size 10m; 详细指令说明请参见(六)提供的Wiki链接.

2.Discuz附件无法下载附件?

最近遇到一个奇怪的问题在nginx下discuz论坛无法下载附件,后来打开error_log才知道,仍后一看/usr/local分区满了,

清了一大堆无用文件后,马上就正常了.

以上是本人迁移和测试过程中遇到的两个小问题,在此附上说明,只是希望配置nginx的朋友不要犯我一样的问题.

欢迎联系NetSeek(狂热linux爱好者^_^ msn:cnseek@msn.com QQ:67888954 Gtalk:cnseek@gmail.com).

六.相关链接:

1.Discuz!.net高性能的PHP论坛程序 http://www.discuz.net Supesite: http://www.supesite.com/

2.Nginx参考文档:http://wiki.codemongers.com/

3.利用Nginx实现负载均衡(阿叶大哥的文章):http://www.imysql.com/comment/reply/210

4.linuxPk[Linux宝库]:http://bbs.linuxpk.com

5.红动中国 http://bbs.redocn.com

Linux服务器上配置Nginx Mongrel cluster步骤

Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。下面介绍一下如何在一台Linux服务器上配置Nginx Mongrel cluster。

获得Nginx,这里我们假设大家是通过自己编译,并配置了默认的编译的参数,此处使用的是Nginx 0.5.x版。

配置Mongrel cluster

我们还需要获得Mongrel和其Cluster插件(用来方便得启动多个Mongrel进程),如下通过gem进行安装:

gem i -y mongrel mongrel_cluster

然后建立mongrel_cluster的配置文件。进入Rails应用即你的程序的根部目录(以下假设/usr/rails),运行:

mongrel_rails cluster::configure

然后mongrel_cluster便会在config目录下生成一个mongrel_cluster.yml,内容如下:

log_file: log/mongrel.log

port: 3000

pid_file: tmp/pids/mongrel.pid

servers: 2

我们可以通过修改其中的设置来更改mongrel_cluster的运行,这个范例配置省略了一些其他参数,具体的参数的含义如下:

address: 指定绑定的地址

port: 指定mongrel_cluster所运行的mongrel进程从哪个端口开始绑定

servers: 指定同时运行多少个mongrel进程,结合port参数,就是表示port到port servers-1(含)的端口将被使用

environment: 指定Rails运行的配置环境

user: 指定mongrel进程以什么用户的身份运行

group: 指定mongrel进程以什么组的身份运行

cwd: 指定mongrel运行的根目录

log_file: 各个mongrel进程的输出日志的位置,相对于cwd的目录,会在文件的扩展名之前加上各进程对应的端口号

pid_file: 各个mongrel进程的pid文件的位置,相对于cwd的目录,会在文件的扩展名之前加上各进程对应的端口号

大家可以根据自己的具体情况进行修改。以下是一个完整的mongrel_cluster.yml配置文件:

user: apache

cwd: /usr/rails/

log_file: log/mongrel.log

port: 3000

environment: production

group: apache

address: 127.0.0.1

pid_file: tmp/pids/mongrel.pid

servers: 5

接下来便可以启动mongrel_cluster了,以下是控制mongrel_cluster的命令:

mongrel_rails cluster::start #启动

mongrel_rails cluster::restart #重启

mongrel_rails cluster::stop #停止

配置Nginx负载均衡反向代理

利用nginx的upstream指令配置哪些服务器需要进行负载均衡。在这里也可以说直接说告诉nginx mongrel_cluster在哪些地址和端口上,按照上面的mongrel_cluster的配置,在nginx中应该这样写:

http{

#upstream段要放在http段中

upstream mongrel {

server 127.0.0.1:3000;

server 127.0.0.1:3001;

server 127.0.0.1:3002;

server 127.0.0.1:3003;

server 127.0.0.1:3004;

}

}

upstream指令后面的mongrel指定了这批上游服务器的的名称,大家可以使用别的名字。每个server指令指定了一个服务器,server指令还支持别的参数可以设置重试次数和超时时间以及不同服务器的权重。

接下来配置nginx在接受哪些http请求时转发到mongrel cluster,因为nginx处理静态文件的速度远远高于mongrel,所以一般当请求的路径不存在的时候才将请求转发到mongrel cluster:

server {

listen 80;

server_name example.com;

#设置服务器根目录为rails应用的public目录,这个目录下放了对外的静态文件

root /usr/rails/public;

index index.html index.htm;

location / {

#转发时保留原有请求的IP信息和HOST信息

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_redirect false;

if (-f $request_filename/index.html) {

rewrite (.*) $1/index.html break;

}

if (-f $request_filename.html) {

rewrite (.*) $1.html break;

}

#当请求的文件不存在,转发到mongrel cluster

if (!-f $request_filename) {

proxy_pass http://mongrel;

break;

}

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

然后重启Nginx,配置便成功了。

Nginx 初试(转自www.imysql.cn)

1. 前言

Nginx(发音为 [engine x])是有俄罗斯人Igor Sysoev建立的项目,基于BSD许可.

它本身是一个高速的http服务器,具有很优秀的性能表现,同时也可以作为IMAP/POP3的代理服务器.俄罗斯的一些大网站已经使用它超过两年多了,一直表现不凡.

2. Nginx应用简述

Nginx被安装在服务器(192.168.8.84)上的 /usr/local/nginx 目录下. "conf/" 目录下存放配置文件, "html/" 存放默认的404,50x等错误文件, "logs/" 目录下存放着所有的日志, "sbin/" 目录下只有一个文件,即主程序文件 nginx.

Nginx 默认的配置文件放在 "conf/" 下,当然也可以自己手工指定,例如用以下方式来启动:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

或者

/usr/local/nginx/sbin/nginx

都可以,Nginx自动进入后台作为daemon程序运行.

重启Nginx可以用 "kill -HUP" 的方式,也可以先杀掉进程,然后重新启动;推荐第一种,可以避免出现短暂的无法访问情况.

Nginx还提供状态报告功能,访问地址为:

http://192.168.8.84/NginxStatus

需要先输入http auth的用户和密码 yejr/yejr,然后就可以看到类似如下的信息:

Active connections: 328

server accepts handled requests

9309 8982 28890 Reading: 1 Writing: 3 Waiting: 324

第一行表示目前活跃的连接数

第三行的第三个数字表示Nginx运行到当前时间接受到的总请求数

第四行看不懂 :(

如上所述,Nginx的日志存放在 "logs/" 下,和apache的日志类似,有两种:access log 和 error log.

access log 为 logs/imysql.cn_access.log,它的格式比较容易读懂,不再细述.

error log为 logs/error.log,主要关注错误日志,即 "[error]" 和 "[crit]" 级别的日志.

如果觉得某个主机的负载较高,可以调整 "upstream mysvr" 区间中的 "weight" 参数,该值越高权值越大,被分流的几率越大.

3. 状态监控,调整,备用方案

由于对Nginx的性能还不是很有把握,以前也没有用过,因此需要多监控系统状态.包括:

1.) 运行 top/vmstat/ps 等命令,来定期检查系统负载情况

2.) 通过上面的Nginx web接口来了解Nginx的运行状况,尤其是"Active connections"这个参数,当前Nginx设置的上限是768(配置参数: "worker_connections 768;"),如果发现这个数值快要达到上限了,就修改一下配置文件,调高该参数,然后重启.

3.) 监控Nginx的error log

附:nginx的编译参数

./configure –prefix=/usr/local/nginx –with-openssl=/usr/include –with-pcre=/usr/include/pcre/ –with-http_stub_status_module –without-http_memcached_module –without-http_fastcgi_module –without-http_rewrite_module –without-http_map_module –without-http_geo_module –without-http_autoindex_module

一、前言,准备工作

当前,LAMP开发模式是WEB开发的首选,如何搭建一个高效、可靠、稳定的WEB服务器一直是个热门主题,本文就是这个主题的一次尝试。

我们采用的架构图如下:

 ——– ———- ————- ——— ————

| 客户端 | ===> |负载均衡器| ===> |反向代理/缓存| ===> |WEB服务器| ===> |数据库服务器|

——– ———- ————- ——— ————

Nginx Squid Apache,PHP MySQL/memcache

eAccelerator

准备工作:

服务器: Intel(R) Xeon(TM) CPU 3.00GHz * 2, 2GB mem, SCISC 硬盘

操作系统:Linux RedHat AS4,内核版本2.6.9-22.ELsmp,gcc版本3.4.4

软件:

Apache 2.2.3(能使用MPM模式)

PHP 5.2.0(选用该版本是因为5.2.0的引擎相对更高效)

eAccelerator 0.9.5(加速PHP引擎,同时也可以加密PHP源程序)

memcache 1.2.0(用于高速缓存常用数据)

libevent 1.2a(memcache工作机制所需)

MySQL 5.0.27(选用二进制版本,省去编译工作)

Nginx 0.5.4(用做负载均衡器)

squid-2.6.STABLE6(做反向代理的同时提供专业缓存功能)

二、编译安装

一、) 安装Nginx

1.) 安装

Nginx发音为[engine x],是由俄罗斯人Igor Sysoev建立的项目,基于BSD许可。据说他当初是F5的成员之一,英文主页:http://nginx.net。俄罗斯的一些大网站已经使用它超过两年多了,一直表现不凡。

Nginx的编译参数如下:

[root@localhost]#./configure –prefix=/usr/local/server/nginx –with-openssl=/usr/include

–with-pcre=/usr/include/pcre/ –with-http_stub_status_module –without-http_memcached_module

–without-http_fastcgi_module –without-http_rewrite_module –without-http_map_module

–without-http_geo_module –without-http_autoindex_module

在这里,需要说明一下,由于Nginx的配置文件中我想用到正则,所以需要 pcre 模块的支持。我已经安装了 pcre 及 pcre-devel 的rpm包,但是 Ngxin 并不能正确找到 .h/.so/.a/.la 文件,因此我稍微变通了一下:

[root@localhost]#mkdir /usr/include/pcre/.libs/

[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.a

[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.la

然后,修改 objs/Makefile 大概在908行的位置上,注释掉以下内容:

./configure –disable-shared

接下来,就可以正常执行 make 及 make install 了。

2.) 修改配置文件 /usr/local/server/nginx/conf/nginx.conf

以下是我的 nginx.conf 内容,仅供参考:

#运行用户

user nobody nobody;

#启动进程

worker_processes 2;

#全局错误日志及PID文件

error_log logs/error.log notice;

pid logs/nginx.pid;

#工作模式及连接数上限

events {

use epoll;

worker_connections 1024;

}

#设定http服务器,利用它的反向代理功能提供负载均衡支持

http {

#设定mime类型

include conf/mime.types;

default_type application/octet-stream;

#设定日志格式

log_format main '$remote_addr – $remote_user [$time_local] '

'"$request" $status $bytes_sent '

'"$http_referer" "$http_user_agent" '

'"$gzip_ratio"';

log_format download '$remote_addr – $remote_user [$time_local] '

'"$request" $status $bytes_sent '

'"$http_referer" "$http_user_agent" '

'"$http_range" "$sent_http_content_range"';

#设定请求缓冲

client_header_buffer_size 1k;

large_client_header_buffers 4 4k;

#开启gzip模块

gzip on;

gzip_min_length 1100;

gzip_buffers 4 8k;

gzip_types text/plain;

output_buffers 1 32k;

postpone_output 1460;

#设定access log

access_log logs/access.log main;

client_header_timeout 3m;

client_body_timeout 3m;

send_timeout 3m;

sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 65;

#设定负载均衡的服务器列表

upstream mysvr {

#weigth参数表示权值,权值越高被分配到的几率越大

#本机上的Squid开启3128端口

server 192.168.8.1:3128 weight=5;

server 192.168.8.2:80 weight=1;

server 192.168.8.3:80 weight=6;

}

#设定虚拟主机

server {

listen 80;

server_name 192.168.8.1 www.yejr.com;

charset gb2312;

#设定本虚拟主机的访问日志

access_log logs/www.yejr.com.access.log main;

#如果访问 /img/*, /js/*, /css/* 资源,则直接取本地文件,不通过squid

#如果这些文件较多,不推荐这种方式,因为通过squid的缓存效果更好

location ~ ^/(img|js|css)/ {

root /data3/Html;

expires 24h;

}

#对 "/" 启用负载均衡

location / {

proxy_pass http://mysvr;

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

}

#设定查看Nginx状态的地址

location /NginxStatus {

stub_status on;

access_log on;

auth_basic "NginxStatus";

auth_basic_user_file conf/htpasswd;

}

}

}

运行以下命令检测配置文件是否无误:

如果没有报错,那么就可以开始运行Nginx了,执行以下命令即可:

备注:conf/htpasswd 文件的内容用 apache 提供的 htpasswd 工具来产生即可,内容大致如下:

3.) 查看 Nginx 运行状态

输入地址 http://192.168.8.1/NginxStatus/,输入验证帐号密码,即可看到类似如下内容:

Active connections: 328

server accepts handled requests

9309 8982 28890

Reading: 1 Writing: 3 Waiting: 324

第一行表示目前活跃的连接数

第三行的第三个数字表示Nginx运行到当前时间接受到的总请求数,如果快达到了上限,就需要加大上限值了。

第四行看不懂 :(

安装Squid 及cdn配置(转)

#以下代码经由本人执行过.

1.1. 安装Squid

Squid,有趣的鱿鱼代理服务器

1.1.1. squid2.5安装

1.1.1.1. 下载&安装

增加文件描述符,

vi /etc/security/limits.conf

在未段加下两行

* soft nofile 10240

* hard nofile 10240

##############################################结束

[root@xok.cn squid]ulimit -HSn 10240

#增加临时端口范围

加下列行到/etc/rc.local

echo "1024 40000" > /proc/sys/net/ipv4/ip_local_port_range

重启服务器

groupadd -g5300 squid

useradd -u 5300 -g 5300 -s /sbin/nologin squid

export CFLAGES='-O2 -mcpu=pentium4 -march=pentium4 -mmmx -msse -msse2'

(可以根据你的CPU选择相应的参数

GCC-3.1以上可針對CPU最佳化:

Pentium2: -O2 -mcpu=i686 -march=i686 -mmmx

Pentium3: -O2 -mcpu=pentium3 -march=pentium3 -mmmx -msse

Pentium4: -O2 -mcpu=pentium4 -march=pentium4 -mmmx -msse -mss)

squid的2.5最新版本是squid-2.5.STABLE6,先下载安装包,再安装:

#cd /tmp

#mkdir squidinstall

#cd squidinstall

#wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE6.tar.gz

#tar xzvf squid-2.5.STABLE6.tar.gz

#cd squid-2.5.STABLE6

#./configure –prefix=/usr/local/squid –enable-async-io=100 –enable-storeio=aufs,coss,diskd,ufs –enable-icmp –enable-kill-parent-hack –enable-cache-digests –enable-default-err-language=Simplify_Chinese enable-err-language="Simplify_Chinese English" –enable-poll –enable-removal-policies="lru,heap" –disable-ident-lookups –disable-internal-dns –disable-hostname-checks –enable-truncate –enable-underscores –enable-stacktrace –disable-arp-acl

#make

#make install

mkdir /cache

chown -R squid:squid /cache

chown squid:squid -R /usr/local/squid

chown -R squid:squid /usr/local/squid/var

看到类似于下图的提示,并且没有出现 Error Code :1 之类的错误提示,证明Squid已经安装完成了!

2.1.

配置文件squid.conf

vi /usr/local/squid/etc/squid.conf

找到:

cache_dir ufs

修改列:

cache_dir aufs /cache 1800 16 256

找到:

# http_port 3128

修改列:

http_port 8080 (去掉注释)

找到下列行:

acl QUERY urlpath_regex cgi-bin ?

no_cache deny QUERY

改为:

acl QUERY urlpath_regex -i cgi-bin ? .php$ .asp$ /$ ^$

no_cache deny QUERY

acl nodown urlpath_regex -i .mp3$ .avi$ .wma$ .exe$ .rar$ .zip$

no_cache deny nodown

#禁止cgi-bin,php,asp,mp3,avi,zip等缓存

找到:

httpd_accel_with_proxy off

修改列:httpd_accel_with_proxy on

#这个很重要,疏忽了它我找了大半天为什么…..

找到:

# cache_effective_user nobody

修改列:

cache_effective_user squid

cache_effective_group squid

# 以下挨着去找并修改:

cache_mem 300 MB(改为约实际内存1/3)

maximum_object_size 2048 KB

maximum_object_size_in_memory 800 KB

cache_store_log none

emulate_httpd_log on

dns_children 20

hosts_file /usr/local/squid/etc/hosts

redirect_children 20

refresh_pattern . 0 50% 60

在行# And finally deny all other access to this proxy后改

http_access allow all

httpd_accel_host virtual

httpd_accel_uses_host_header on

logfile_rotate 24

log_icp_queries off

buffered_logs on

coredump_dir /cache

ie_refresh on

好了,运行你的Squid吧!

#/usr/local/squid/sbin/squid start

Q:如何判断已经成功实现缓存功能

A:

#ps -waux | grep squid

#cat /var/log/squid/cache.log (有没有正常输出)

#netstat -a | more (找3128端口)

在IE里代理设置好缓存服务器的地址端口.打一个URL,如:

blog.xok.cn

正常显示,就成功啦!!!

如果乱打blogaaa.xok.cn看到:

您所请求的网址(URL)无法获取

——————————————————————————–

当尝试读取以下网址(URL)时: http://blogaaa.xok.cn/

发生了下列的错误:

无法将您输入的主机名称:blogaaa.xok.cn转换成 IP 地址 域名服务器返回以下讯息:

Name Error: The domain name does not exist. 这表示:

The cache was not able to resolve the hostname presented in the URL. Check if the address is correct. 缓存服务器无法解析您输入网址(URL)中的主机名称,请检查该名称是否正确。

本缓存服务器管理员:xxx@xok.cn

——————————————————————————–

Generated Sun, 11 Jul 2004 06:00:58 GMT by blog.xok.cn(squid/2.5.STABLE5)

3.1.

浅谈Squid的ACL语法.

ACL,Access Control List,访问控制列表.它的语法是: (在/usr/local/squid/etc/squid.conf里添加)

acl 表名 表类型 [-i] 表的值

http_access [allow/deny] 表名下面分条解释:

表名:可以自定义

表类型:表类型有

src 源地址:客户机的IP地址

dst 目的地址:服务器的IP地址

srcdomain 源域:客户机所属的域

dstdomain 目的域:服务器所属的域

url_regex URL正则表达式(字符串部分)

urlpath_regex URL正则表达式中的路径

time [星期] [时间段]

maxconn 客户端的最大连接数

-i 这个参数使Squid不区分大小写

表的值:随表的类型不同而不同

注意:time中的星期要用如下字符:

S (Sunday,星期日) M(Monday,星期一) T(Tuesday,星期二) W(Wednesday,星期三)

H(Thursday,星期四) F(Friday,星期五) A(Saturday,星期六)

时间段的表示方式是: XX:00-YY:00 如: 20:00-22:00

http_access 选项允许你设置一个表是允许(allow)还是拒绝(deny)

下面举几个例子: 防3721的ACL.在squid.conf中加入:

acl badurls dstdomain -i www.3721.com www.3721.net download.3721.com cnsmin.3721.com

http_access deny badurls

acl badkeywords url_regex -i 3721.com 3721.net

http_access deny badkeywords

解释:

badurls 和 badkeywords 是你自定义的表名.

dstdomain 是服务器的域名(目的域) 而 url_regex 则是URL正则表达式(字符串部分)包含的内容.

http_access 选项的 deny 则是把表badurls和表badkeywords的访问拒绝.

禁止下载Flash:

acl badfiles urlpath_regex -i .swf$

http_access deny badfiles

大家在今后的配置中,慢慢体会ACL的用法吧! 达到目的喽:

错误

您所请求的网址(URL)无法获取

——————————————————————————–

当尝试读取以下网址(URL)时: http://www.3721.com/ 发生了下列的错误:

Access Denied. 拒绝访问

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect. 当前的存取控制设定禁止您的请求被接受,如果您觉得这是错误的,请与您网路服务的提供者联系。

[MySQL FAQ]系列 — mysql如何计算打开文件数

一、试验

从手册的"6.4.8. How MySQL Opens and Closes Tables"可以了解到,每打开一个MyISAM表,就需要使用2个文件描述符,咱们来验证一下。

1. 重启mysqld

/etc/init.d/mysql restart

2. 看看打开了几个文件

lsof | grep /home/mysql

mysqld 24349 mysql 5u unix 0×000001041e8de040 4244009 /home/mysql/mysql.sock

mysqld 24349 mysql 6u REG 8,33 2048 30425188 /home/mysql/mysql/host.MYI

mysqld 24349 mysql 7u REG 8,33 0 30425189 /home/mysql/mysql/host.MYD

mysqld 24349 mysql 8u REG 8,33 2048 30425153 /home/mysql/mysql/user.MYI

mysqld 24349 mysql 9u REG 8,33 892 30425155 /home/mysql/mysql/user.MYD

mysqld 24349 mysql 10u REG 8,33 5120 30425126 /home/mysql/mysql/db.MYI

mysqld 24349 mysql 11u REG 8,33 3080 30425148 /home/mysql/mysql/db.MYD

mysqld 24349 mysql 12u REG 8,33 4096 30425154 /home/mysql/mysql/tables_priv.MYI

mysqld 24349 mysql 13u REG 8,33 0 30425157 /home/mysql/mysql/tables_priv.MYD

mysqld 24349 mysql 14u REG 8,33 4096 30425143 /home/mysql/mysql/columns_priv.MYI

mysqld 24349 mysql 15u REG 8,33 0 30425156 /home/mysql/mysql/columns_priv.MYD

mysqld 24349 mysql 16u REG 8,33 4096 30425127 /home/mysql/mysql/procs_priv.MYI

mysqld 24349 mysql 17u REG 8,33 0 30425136 /home/mysql/mysql/procs_priv.MYD

mysqld 24349 mysql 18u REG 8,33 1024 30425173 /home/mysql/mysql/servers.MYI

mysqld 24349 mysql 19u REG 8,33 0 30425174 /home/mysql/mysql/servers.MYD

mysqld 24349 mysql 20u REG 8,33 2048 30425182 /home/mysql/mysql/event.MYI

mysqld 24349 mysql 21u REG 8,33 0 30425183 /home/mysql/mysql/event.MYD

可以看到,总共打开了8个表,每个表分别有2个文件描述符,看来没错。

3. 再来看 status 结果

mysql>show global status like 'open_%';

+————————+——-+

| Variable_name | Value |

+————————+——-+

| Open_files | 17 |

| Open_streams | 0 |

| Open_table_definitions | 15 |

| Open_tables | 8 |

| Opened_files | 52 |

| Opened_tables | 15 |

+————————+——-+

4. flush tables 后再看看

mysql>flush tables;

mysql> show global status like 'open_%';

+————————+——-+

| Variable_name | Value |

+————————+——-+

| Open_files | 1 |

| Open_streams | 0 |

| Open_table_definitions | 0 |

| Open_tables | 0 |

| Opened_files | 52 |

| Opened_tables | 15 |

+————————+——-+

lsof | grep /home/mysql

mysqld 24349 mysql 5u unix 0×000001041e8de040 4244009 /home/mysql/mysql.sock

mysqld 24349 mysql 22u unix 0×00000102378ff980 4244128 /home/mysql/mysql.sock

可以看到,flush 之后,所有的文件描述符都释放了。

通过测试可以得知,另一个打开的文件描述符是 slow query log所用。

如果是有大量的 MyISAM 表,那么就需要特别注意打开文件数是否会超出限制了。

二、原理

接下来仔细了解下这个最大文件数相关的参数:

table_cache (新版本改成了 table_open_cache) The number of cached open tables.

open_files_limit If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit().

If this value is 0 then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger)

number of files.

如果 open_files_limit 不是设置为 0,则以 setrlimit() 函数计算后的结果为准,如果设置为 0,则实际值是 max_connections*5 或 max_connections + table_cache*2 中的最大者。

因此,想要解决打开文件数超限的问题,还需要综合系统内核限制(ulimit -n),mysqld自身限制(open_files_limit),以及表缓存数(table_open_cache)等多方面因素。

不过,实际测试中,发现却不是这样的,open_files_limit采用了内核的最大限制,而非上面的计算结果。

1. 查看内核限制

ulimit -n

65535

2. 修改 my.cnf 限制

vi /etc/my.cnf

open_files_limit = 10000

3. 重启 mysqld

/etc/init.d/mysql restart

4. 查看结果

mysql>show global variables like '%open%';

| open_files_limit | 65535 |

| table_open_cache | 1000 |

5. 不设置 open_files_limit 看看

vi /etc/my.cnf

#open_files_limit = 10000

重启

/etc/init.d/mysql restart

查看

mysql>show global variables like '%open%';

| open_files_limit | 65535 |

| table_open_cache | 1000 |

而这个时候,按计算公式结果如下:

| max_connections | 100 |

| table_open_cache | 1000 |

来计算一下:

max_open_files_1 = max_connections + table_cache * 2 = 100 + 1000 * 2 = 2100

max_open_files_2 = max_connections*5 = 100 * 5 = 500

6. 修改 ulimit 试试看:

unlimit -n 5000

vi /etc/my.cnf

open_files_limit = 10000

/etc/init.d/mysql restart

mysql>show global variables like '%open%';

| open_files_limit | 10000 |

| table_open_cache | 1000 |

open_files_limit 比内核最大限制数还大,因此以 open_files_limit 为准。

vi /etc/my.cnf

#open_files_limit = 10000

/etc/init.d/mysql restart

mysql>show global variables like '%open%';

| open_files_limit | 5000 |

| table_open_cache | 1000 |

看到了,变成了新的内核最大限制

看到了吧,结果完全跟文档描述的以及mysql源码中写的不一样,看来预编译版本有些地方不太可靠啊 :(

以上测试在mysql 5.1.23-rc(预编译), mysql-5.1.24-rc(自编译) 以及 5.0.45(预编译) 均一样。

uname -a

Linux s1.yejr.com 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux

mysql> select version();

+—————+

| version() |

+—————+

| 5.1.23-rc-log |

+—————+

[精华] 中国最完整的sysctl.conf优化方案

网上关于sysctl.conf的优化方案有各种版本,大多都是抄来抄去的,让新人看了很迷茫。为解决此问题,经过两天的整理,查了N多资料,将大家常用的总结如下,很多默认的不需要修改的暂未涉及,今后将逐步把所有的项目都有个翻译、讲解、修改建议,如有修改,将以此文为准,其他地方的内容,本人不负责更新。因此转载请注明链接地址:http://www.bsdlover.cn/security/2007/1216/article_8.html如果您有补充或修订意见,请于本文后评论或邮件联系cujxtm@gmail.com,万分感谢!

###################

所有rfc相关的选项都是默认启用的,因此网上的那些还自己写rfc支持的都可以扔掉了:)

###############################

net.inet.ip.sourceroute=0

net.inet.ip.accept_sourceroute=0

#############################

通过源路由,攻击者可以尝试到达内部IP地址 –包括RFC1918中的地址,所以

不接受源路由信息包可以防止你的内部网络被探测。

#################################

net.inet.tcp.drop_synfin=1

###################################

安全参数,编译内核的时候加了options TCP_Drop_SYNFIN才可以用,可以阻止某些OS探测。

##################################

kern.maxvnodes=8446

#################http://www.bsdlover.cn#########

vnode 是对文件或目录的一种内部表达。 因此, 增加可以被操作系统利用的 vnode 数量将降低磁盘的 I/O。

一般而言, 这是由操作系统自行完成的,也不需要加以修改。但在某些时候磁盘 I/O 会成为瓶颈,

而系统的 vnode 不足, 则这一配置应被增加。此时需要考虑是非活跃和空闲内存的数量。

要查看当前在用的 vnode 数量:

# sysctl vfs.numvnodes

vfs.numvnodes: 91349

要查看最大可用的 vnode 数量:

# sysctl kern.maxvnodes

kern.maxvnodes: 100000

如果当前的 vnode 用量接近最大值,则将 kern.maxvnodes 值增大 1,000 可能是个好主意。

您应继续查看 vfs.numvnodes 的数值, 如果它再次攀升到接近最大值的程度,

仍需继续提高 kern.maxvnodes。 在 top(1) 中显示的内存用量应有显著变化,

更多内存会处于活跃 (active) 状态。

####################################

kern.maxproc: 964

#################http://www.bsdlover.cn#########

Maximum number of processes

####################################

kern.maxprocperuid: 867

#################http://www.bsdlover.cn#########

Maximum processes allowed per userid

####################################

因为我的maxusers设置的是256,20+16*maxusers=4116。

maxprocperuid至少要比maxproc少1,因为init(8) 这个系统程序绝对要保持在运作状态。

我给它设置的2068。

kern.maxfiles: 1928

#################http://www.bsdlover.cn#########

系统中支持最多同时开启的文件数量,如果你在运行数据库或大的很吃描述符的进程,那么应该设置在20000以上,

比如kde这样的桌面环境,它同时要用的文件非常多。

一般推荐设置为32768或者65536。

####################################

kern.argmax: 262144

#################http://www.bsdlover.cn#########

maximum number of bytes (or characters) in an argument list.

命令行下最多支持的参数,比如你在用find命令来批量删除一些文件的时候

find . -name "*.old" -delete,如果文件数超过了这个数字,那么会提示你数字太多的。

可以利用find . -name "*.old" -ok rm {} ;来删除。

默认的参数已经足够多了,因此不建议再做修改。

####################################

kern.securelevel: -1

#################http://www.bsdlover.cn#########

-1:这是系统默认级别,没有提供任何内核的保护错误;

0:基本上作用不多,当你的系统刚启动就是0级别的,当进入多用户模式的时候就自动变成1级了。

1:在这个级别上,有如下几个限制:

  a. 不能通过kldload或者kldunload加载或者卸载可加载内核模块;

  b. 应用程序不能通过/dev/mem或者/dev/kmem直接写内存;

  c. 不能直接往已经装在(mounted)的磁盘写东西,也就是不能格式化磁盘,但是可以通过标准的内核接口执行写操作;

  d. 不能启动X-windows,同时不能使用chflags来修改文件属性;

2:在 1 级别的基础上还不能写没装载的磁盘,而且不能在1秒之内制造多次警告,这个是防止DoS控制台的;

3:在 2 级别的级别上不允许修改IPFW防火墙的规则。

  如果你已经装了防火墙,并且把规则设好了,不轻易改动,那么建议使用3级别,如果你没有装防火墙,而且还准备装防火墙的话,不建议使用。

我们这里推荐使用 2 级别,能够避免比较多对内核攻击。

####################################

kern.maxfilesperproc: 1735

#################http://www.bsdlover.cn#########

每个进程能够同时打开的最大文件数量,网上很多资料写的是32768

除非用异步I/O或大量线程,打开这么多的文件恐怕是不太正常的。

我个人建议不做修改,保留默认。

####################################

kern.ipc.maxsockbuf: 262144

#################http://www.bsdlover.cn#########

最大的套接字缓冲区,网上有建议设置为2097152(2M)、8388608(8M)的。

我个人倒是建议不做修改,保持默认的256K即可,缓冲区大了可能造成碎片、阻塞或者丢包。

####################################

kern.ipc.somaxconn: 128

#################http://www.bsdlover.cn#########

最大的等待连接完成的套接字队列大小,即并发连接数。

高负载服务器和受到Dos攻击的系统也许会因为这个队列被塞满而不能提供正常服务。

默认为128,推荐在1024-4096之间,根据机器和实际情况需要改动,数字越大占用内存也越大。

####################################

kern.ipc.nmbclusters: 4800

#################http://www.bsdlover.cn#########

这个值用来调整系统在开机后所要分配给网络 mbufs 的 cluster 数量,

由于每个 cluster 大小为 2K,所以当这个值为 1024 时,也是会用到 2MB 的核心内存空间。

假设我们的网页同时约有 1000 个联机,而 TCP 传送及接收的暂存区大小都是 16K,

则最糟的情况下,我们会需要 (16K+16K) * 1024,也就是 32MB 的空间,

然而所需的 mbufs 大概是这个空间的二倍,也就是 64MB,所以所需的 cluster 数量为 64MB/2K,也就是 32768。

对于内存有限的机器,建议值是 1024 到 4096 之间,而当拥有海量存储器空间时,我们可以将它设定为 4096 到 32768 之间。

我们可以使用 netstat 这个指令并加上参数 -m 来查看目前所使用的 mbufs 数量。

要修改这个值必须在一开机就修改,所以只能在 /boot/loader.conf 中加入修改的设定

kern.ipc.nmbclusters=32768

####################################

kern.ipc.shmmax: 33554432

#################http://www.bsdlover.cn#########

共享内存和信号灯("System VIPC")如果这些过小的话,有些大型的软件将无法启动

安装xine和mplayer提示的设置为67108864,即64M,

如果内存多的话,可以设置为134217728,即128M

####################################

kern.ipc.shmall: 8192

#################http://www.bsdlover.cn#########

共享内存和信号灯("System VIPC")如果这些过小的话,有些大型的软件将无法启动

安装xine和mplayer提示的设置为32768

####################################

kern.ipc.shm_use_phys: 0

#################http://www.bsdlover.cn#########

如果我们将它设成 1,则所有 System V 共享内存 (share memory,一种程序间沟通的方式)部份都会被留在实体的内存 (physical memory) 中,

而不会被放到硬盘上的 swap 空间。我们知道物理内存的存取速度比硬盘快许多,而当物理内存空间不足时,

部份数据会被放到虚拟的内存上,从物理内存和虚拟内存之间移转的动作就叫作 swap。如果时常做 swap 的动作,

则需要一直对硬盘作 I/O,速度会很慢。因此,如果我们有大量的程序 (数百个) 需要共同分享一个小的共享内存空间,

或者是共享内存空间很大时,我们可以将这个值打开。

这一项,我个人建议不做修改,除非你的内存非常大。

####################################

kern.ipc.shm_allow_removed: 0

#################http://www.bsdlover.cn#########

共享内存是否允许移除?这项似乎是在fb下装vmware需要设置为1的,否则会有加载SVGA出错的提示

作为服务器,这项不动也罢。

####################################

kern.ipc.numopensockets: 12

#################http://www.bsdlover.cn#########

已经开启的socket数目,可以在最繁忙的时候看看它是多少,然后就可以知道maxsockets应该设置成多少了。

####################################

kern.ipc.maxsockets: 1928

#################http://www.bsdlover.cn#########

这是用来设定系统最大可以开启的 socket 数目。如果您的服务器会提供大量的 FTP 服务,

而且常快速的传输一些小档案,您也许会发现常传输到一半就中断。因为 FTP 在传输档案时,

每一个档案都必须开启一个 socket 来传输,但关闭 socket 需要一段时间,如果传输速度很快,

而档案又多,则同一时间所开启的 socket 会超过原本系统所许可的值,这时我们就必须把这个值调大一点。

除了 FTP 外,也许有其它网络程序也会有这种问题。

然而,这个值必须在系统一开机就设定好,所以如果要修改这项设定,我们必须修改 /boot/loader.conf 才行

kern.ipc.maxsockets="16424"

####################################

kern.ipc.nsfbufs: 1456

#################http://www.bsdlover.cn#########

经常使用 sendfile(2) 系统调用的繁忙的服务器,

有必要通过 NSFBUFS 内核选项或者在 /boot/loader.conf (查看 loader(8) 以获得更多细节) 中设置它的值来调节 sendfile(2) 缓存数量。

这个参数需要调节的普通原因是在进程中看到 sfbufa 状态。sysctl kern.ipc.nsfbufs 变量在内核配置变量中是只读的。

这个参数是由 kern.maxusers 决定的,然而它可能有必要因此而调整。

在/boot/loader.conf里加入

kern.ipc.nsfbufs="2496"

####################################

kern.maxusers: 59

#################http://www.bsdlover.cn#########

maxusers 的值决定了处理程序所容许的最大值,20+16*maxusers 就是你将得到的所容许处理程序。

系统一开机就必须要有 18 个处理程序 (process),即便是简单的执行指令 man 又会产生 9 个 process,

所以将这个值设为 64 应该是一个合理的数目。

如果你的系统会出现 proc table full 的讯息的话,可以就把它设大一点,例如 128。

除非您的系统会需要同时开启很多档案,否则请不要设定超过 256。

可以在 /boot/loader.conf 中加入该选项的设定,

kern.maxusers=256

####################################

kern.coredump: 1

#################http://www.bsdlover.cn#########

如果设置为0,则程序异常退出时不会生成core文件,作为服务器,不建议这样。

####################################

kern.corefile: %N.core

#################http://www.bsdlover.cn#########

可设置为kern.corefile="/data/coredump/%U-%P-%N.core"

其中 %U是UID,%P是进程ID,%N是进程名,当然/data/coredump必须是一个实际存在的目录

####################################

vm.swap_idle_enabled: 0

vm.swap_idle_threshold1: 2

vm.swap_idle_threshold2: 10

#########################

在有很多用户进入、离开系统和有很多空闲进程的大的多用户系统中很有用。

可以让进程更快地进入内存,但它会吃掉更多的交换和磁盘带宽。

系统默认的页面调度算法已经很好了,最好不要更改。

########################

vfs.ufs.dirhash_maxmem: 2097152

#########################

默认的dirhash最大内存,默认2M

增加它有助于改善单目录超过100K个文件时的反复读目录时的性能

建议修改为33554432(32M)

#############################

vfs.vmiodirenable: 1

#################

这个变量控制目录是否被系统缓存。大多数目录是小的,在系统中只使用单个片断(典型的是1K)并且在缓存中使用的更小 (典型的是512字节)。

当这个变量设置为关闭 (0) 时,缓存器仅仅缓存固定数量的目录,即使您有很大的内存。

而将其开启 (设置为1) 时,则允许缓存器用 VM 页面缓存来缓存这些目录,让所有可用内存来缓存目录。

不利的是最小的用来缓存目录的核心内存是大于 512 字节的物理页面大小(通常是 4k)。

我们建议如果您在运行任何操作大量文件的程序时保持这个选项打开的默认值。

这些服务包括 web 缓存,大容量邮件系统和新闻系统。

尽管可能会浪费一些内存,但打开这个选项通常不会降低性能。但还是应该检验一下。

####################

vfs.hirunningspace: 1048576

############################

这个值决定了系统可以将多少数据放在写入储存设备的等候区。通常使用默认值即可,

但当我们有多颗硬盘时,我们可以将它调大为 4MB 或 5MB。

注意这个设置成很高的值(超过缓存器的写极限)会导致坏的性能。

不要盲目的把它设置太高!高的数值会导致同时发生的读操作的迟延。

#############################

vfs.write_behind: 1

#########################

这个选项预设为 1,也就是打开的状态。在打开时,在系统需要写入数据在硬盘或其它储存设备上时,

它会等到收集了一个 cluster 单位的数据后再一次写入,否则会在一个暂存区空间有写入需求时就立即写到硬盘上。

这个选项打开时,对于一个大的连续的文件写入速度非常有帮助。但如果您遇到有很多行程延滞在等待写入动作时,您可能必须关闭这个功能。

############################

net.local.stream.sendspace: 8192

##################################

本地套接字连接的数据发送空间

建议设置为65536

###################################

net.local.stream.recvspace: 8192

##################################

本地套接字连接的数据接收空间

建议设置为65536

###################################

net.inet.ip.portrange.lowfirst: 1023

net.inet.ip.portrange.lowlast: 600

net.inet.ip.portrange.first: 49152

net.inet.ip.portrange.last: 65535

net.inet.ip.portrange.hifirst: 49152

net.inet.ip.portrange.hilast: 65535

###################

以上六项是用来控制TCP及UDP所使用的port范围,这个范围被分成三个部份,低范围、预设范围、及高范围。

这些是你的服务器主动发起连接时的临时端口的范围,预设的已经1万多了,一般的应用就足够了。

如果是比较忙碌的FTP server,一般也不会同时提供给1万多人访问的,

当然如果很不幸,你的服务器就要提供很多,那么可以修改first的值,比如直接用1024开始

#########################

net.inet.ip.redirect: 1

#########################

设置为0,屏蔽ip重定向功能

###########################

net.inet.ip.rtexpire: 3600

net.inet.ip.rtminexpire: 10

########################

很多apache产生的CLOSE_WAIT状态,这种状态是等待客户端关闭,但是客户端那边并没有正常的关闭,于是留下很多这样的东东。

建议都修改为2

#########################

net.inet.ip.intr_queue_maxlen: 50

########################

Maximum size of the IP input queue,如果下面的net.inet.ip.intr_queue_drops一直在增加,

那就说明你的队列空间不足了,那么可以考虑增加该值。

##########################

net.inet.ip.intr_queue_drops: 0

####################

Number of packets dropped from the IP input queue,如果你sysctl它一直在增加,

那么增加net.inet.ip.intr_queue_maxlen的值。

#######################

net.inet.ip.fastforwarding: 0

#############################

如果打开的话每个目标地址一次转发成功以后它的数据都将被记录进路由表和arp数据表,节约路由的计算时间

但会需要大量的内核内存空间来保存路由表。

如果内存够大,打开吧,呵呵

#############################

net.inet.ip.random_id: 0

#####################

默认情况下,ip包的id号是连续的,而这些可能会被攻击者利用,比如可以知道你nat后面带了多少主机。

如果设置成1,则这个id号是随机的,嘿嘿。

#####################

net.inet.icmp.maskrepl: 0

############################

防止广播风暴,关闭其他广播探测的响应。默认即是,无须修改。

###############################

net.inet.icmp.icmplim: 200

##############################

限制系统发送ICMP速率,改为100吧,或者保留也可,并不会给系统带来太大的压力。

###########################

net.inet.icmp.icmplim_output: 1

###################################

如果设置成0,就不会看到提示说Limiting icmp unreach response from 214 to 200 packets per second 等等了

不过禁止输出容易让我们忽视攻击的存在。这个自己看着办吧。

######################################

net.inet.icmp.drop_redirect: 0

net.inet.icmp.log_redirect: 0

###################################

设置为1,屏蔽ICMP重定向功能

###################################

net.inet.icmp.bmcastecho: 0

############################

防止广播风暴,关闭广播ECHO响应,默认即是,无须修改。

###############################

net.inet.tcp.mssdflt: 512

net.inet.tcp.minmss: 216

###############################

数据包数据段最小值,以上两个选项最好不动!或者只修改mssdflt为1460,minmss不动。

原因详见http://www.bsdlover.cn/security/2007/1211/article_4.html

#############################

net.inet.tcp.keepidle: 7200000

######################

TCP的套接字的空闲时间,默认时间太长,可以改为600000(10分钟)。

##########################

net.inet.tcp.sendspace: 32768

#################http://www.bsdlover.cn#########

最大的待发送TCP数据缓冲区空间,应用程序将数据放到这里就认为发送成功了,系统TCP堆栈保证数据的正常发送。

####################################

net.inet.tcp.recvspace: 65536

###################################

最大的接受TCP缓冲区空间,系统从这里将数据分发给不同的套接字,增大该空间可提高系统瞬间接受数据的能力以提高性能。

###################################

这二个选项分别控制了网络 TCP 联机所使用的传送及接收暂存区的大小。预设的传送暂存区为 32K,而接收暂存区为 64K。

如果需要加速 TCP 的传输,可以将这二个值调大一点,但缺点是太大的值会造成系统核心占用太多的内存。

如果我们的机器会同时服务数百或数千个网络联机,那么这二个选项最好维持默认值,否则会造成系统核心内存不足。

但如果我们使用的是 gigabite 的网络,将这二个值调大会有明显效能的提升。

传送及接收的暂存区大小可以分开调整,

例如,假设我们的系统主要做为网页服务器,我们可以将接收的暂存区调小一点,并将传送的暂存区调大,如此一来,我们就可以避免占去太多的核心内存空间。

net.inet.udp.maxdgram: 9216

#########################

最大的发送UDP数据缓冲区大小,网上的资料大多都是65536,我个人认为没多大必要,

如果要调整,可以试试24576。

##############################

net.inet.udp.recvspace: 42080

##################

最大的接受UDP缓冲区大小,网上的资料大多都是65536,我个人认为没多大必要,

如果要调整,可以试试49152。

#######################

以上四项配置通常不会导致问题,一般说来网络流量是不对称的,因此应该根据实际情况调整,并观察其效果。

如果我们将传送或接收的暂存区设为大于 65535,除非服务器本身及客户端所使用的操作系统都支持 TCP 协议的 windows scaling extension (请参考 RFC 1323 文件)。

FreeBSD默认已支持 rfs1323 (即 sysctl 的 net.inet.tcp.rfc1323 选项)。

###################################################

net.inet.tcp.log_in_vain: 0

##################

记录下任何TCP连接,这个一般情况下不应该更改。

####################

net.inet.tcp.blackhole: 0

##################################

建议设置为2,接收到一个已经关闭的端口发来的所有包,直接drop,如果设置为1则是只针对TCP包

#####################################

net.inet.tcp.delayed_ack: 1

###########################

当一台计算机发起TCP连接请求时,系统会回应ACK应答数据包。

该选项设置是否延迟ACK应答数据包,把它和包含数据的数据包一起发送。

在高速网络和低负载的情况下会略微提高性能,但在网络连接较差的时候,

对方计算机得不到应答会持续发起连接请求,反而会让网络更加拥堵,降低性能。

因此这个值我建议您看情况而定,如果您的网速不是问题,可以将封包数量减少一半

如果网络不是特别好,那么就设置为0,有请求就先回应,这样其实浪费的网通、电信的带宽速率而不是你的处理时间:)

############################

net.inet.tcp.inflight.enable: 1

net.inet.tcp.inflight.debug: 0

net.inet.tcp.inflight.rttthresh: 10

net.inet.tcp.inflight.min: 6144

net.inet.tcp.inflight.max: 1073725440

net.inet.tcp.inflight.stab: 20

###########################

限制 TCP 带宽延迟积和 NetBSD 的 TCP/Vegas 类似。

它可以通过将 sysctl 变量 net.inet.tcp.inflight.enable 设置成 1 来启用。

系统将尝试计算每一个连接的带宽延迟积,并将排队的数据量限制在恰好能保持最优吞吐量的水平上。

这一特性在您的服务器同时向使用普通调制解调器,千兆以太网,乃至更高速度的光与网络连接 (或其他带宽延迟积很大的连接) 的时候尤为重要,

特别是当您同时使用滑动窗缩放,或使用了大的发送窗口的时候。

如果启用了这个选项,您还应该把 net.inet.tcp.inflight.debug 设置为 0 (禁用调试),

对于生产环境而言, 将 net.inet.tcp.inflight.min 设置成至少 6144 会很有好处。

然而, 需要注意的是,这个值设置过大事实上相当于禁用了连接带宽延迟积限制功能。

这个限制特性减少了在路由和交换包队列的堵塞数据数量,也减少了在本地主机接口队列阻塞的数据的数量。

在少数的等候队列中、交互式连接,尤其是通过慢速的调制解调器,也能用低的 往返时间操作。

但是,注意这只影响到数据发送 (上载/服务端)。对数据接收(下载)没有效果。

调整 net.inet.tcp.inflight.stab 是 不 推荐的。

这个参数的默认值是 20,表示把 2 个最大包加入到带宽延迟积窗口的计算中。

额外的窗口似的算法更为稳定,并改善对于多变网络环境的相应能力,

但也会导致慢速连接下的 ping 时间增长 (尽管还是会比没有使用 inflight 算法低许多)。

对于这些情形, 您可能会希望把这个参数减少到 15, 10, 或 5;

并可能因此而不得不减少 net.inet.tcp.inflight.min (比如说, 3500) 来得到希望的效果。

减少这些参数的值, 只应作为最后不得已时的手段来使用。

############################

net.inet.tcp.syncookies: 1

#########################

SYN cookies是一种用于通过选择加密的初始化TCP序列号,可以对回应的包做验证来降低SYN'洪水'攻击的影响的技术。

默认即是,不需修改

########################

net.inet.tcp.msl: 30000

#######################

这个值网上很多文章都推荐的7500,

还可以改的更小一些(如2000或2500),这样可以加快不正常连接的释放过程(三次握手2秒、FIN_WAIT4秒)。

#########################

net.inet.tcp.always_keepalive: 1

###########################

帮助系统清除没有正常断开的TCP连接,这增加了一些网络带宽的使用,但是一些死掉的连接最终能被识别并清除。

死的TCP连接是被拨号用户存取的系统的一个特别的问题,因为用户经常断开modem而不正确的关闭活动的连接。

#############################

net.inet.udp.checksum: 1

#########################

防止不正确的udp包的攻击,默认即是,不需修改

##############################

net.inet.udp.log_in_vain: 0

#######################

记录下任何UDP连接,这个一般情况下不应该修改。

#######################

net.inet.udp.blackhole: 0

####################

建议设置为1,接收到一个已经关闭的端口发来的所有UDP包直接drop

#######################

net.inet.raw.maxdgram: 8192

#########################

Maximum outgoing raw IP datagram size

很多文章建议设置为65536,好像没多大必要。

######################################

net.inet.raw.recvspace: 8192

######################

Maximum incoming raw IP datagram size

很多文章建议设置为65536,好像没多大必要。

#######################

net.link.ether.inet.max_age: 1200

####################

调整ARP清理的时间,通过向IP路由缓冲填充伪造的ARP条目可以让恶意用户产生资源耗竭和性能减低攻击。

这项似乎大家都未做改动,我建议不动或者稍微减少,比如300(HP-UX默认的5分钟)

#######################

net.inet6.ip6.redirect: 1

###############################

设置为0,屏蔽ipv6重定向功能

###########################

net.isr.direct: 0

#################http://www.bsdlover.cn#########

所有MPSAFE的网络ISR对包做立即响应,提高网卡性能,设置为1。

####################################

hw.ata.wc: 1

#####################

这个选项用来打开 IDE 硬盘快取。当打开时,如果有数据要写入硬盘时,硬盘会假装已完成写入,并将数据快取起来。

这种作法会加速硬盘的存取速度,但当系统异常关机时,比较容易造成数据遗失。

不过由于关闭这个功能所带来的速度差异实在太大,建议还是保留原本打开的状态吧,不做修改。

###################

security.bsd.see_other_uids: 1

security.bsd.see_other_gids: 1

#####################

不允许用户看到其他用户的进程,因此应该改成0,

#######################

2008/04/19企业管理

没有评论
53 views

大型企业运营网络解决方案

前言:

  为提高大型企业网络运营的业务能力,港湾网络凭借多年来从事运营商和大型企业宽带网络建设的丰富经验,提出了符合大型企业多种业务运营发展的 “电信级”驻地运营网络解决方案,并充分利用已有通信设备资源,实现了低成本建设大型企业多业务运营网络的目标1、 概述:

  随着近几年国有企业体制的变革,国内很多大型企业的通信公司纷纷独立运营,逐渐从为企业内部提供专用免费的通信服务,向驻地网络运营商发展。然而随着用户的业务需求从传统窄带话音、传真向着高速宽带Internet接入、可视电话、VOD等宽带业务领域的延伸,各大企业原有的通信设施显得力不从心,如何利用原有的通信资源构建一个新的运营网络,满足用户的多种业务需求,实现用户规模的扩大,提高网络的盈利能力,成为每一个大型企业驻地网络运营者关心的问题。

  为提高大型企业网络运营的业务能力,港湾网络凭借多年来从事运营商和大型企业宽带网络建设的丰富经验,提出了满足大型企业多种业务运营需求的驻地运营网络解决方案,它可以充分利用现有企业网络的程控交换机、SDH以及以太网络资源,快速的实现窄带语音和宽带数据业务的部署,从而为提升网络运营能力,实现、语音、数据、多媒体等多元化业务奠定了基础。

2、 港湾大型企业运营网络解决方案:

2.1 方案简介:

  港湾网络大型企业驻地运营网络解决方案是以港湾网络OpCity系列MSTP设备或万兆IP网作为业务承载平台,以港湾网络Hammer系列IP DSLAM设备和港湾网络的路由器及交换机产品,并结合港湾网络VPath IP语音解决方案形成的一套完整的驻地网络运营解决方案。本方案可以非常适合大型企业通信公司开展的驻地网络运营,满足用户对宽带业务、ADSL/VDSL数据业务、专线业务、VOIP等多种业务的需求。

attachment/month_0804/i200841918554.jpg

attachment/month_0804/620084191867.jpg

2.2 网络说明:

1)MSTP承载平台设计:

  基于大型企业网络拥有规模庞大的窄带语音业务,所以方案一设计中采用了港湾网络OpCity系列MSTP设备组建STM-16/64等级的光传输平台,通过OpCity5630设备可以为每个业务点提供大量的E1满足传统程控交换机语音E1中继的需求,对于宽带运营的数据业务可以由OpCity5630设备提供的GE/FE接口实现各业务点数据业务向企业集团总部关口局的汇聚。但由于大型企业驻地运营网络是属于集中式业务模型,并且MSTP设备自身的带宽利用率不高,所以这种承载平台适合于大型企业开展宽带初期的网络组建,在宽带业务量增长到一定限度后,宽带业务承载平台仍然需要向万兆IP网发展,届时MSTP平台可以作为备用通道;

2)万兆IP承载平台设计:

  对于特大型企业网络所承载的宽带用户众多,所以基于万兆IP网络的承载平台是大型企业运营网络的必然选择,港湾网络针对于大型企业万兆IP承载平台,提供由Power Hammer P系列万兆核心路由器来组建特大型企业运营网络高可靠的IP核心网络,PowerHammer P640/320/160核心交换路由器的交换容量分别为640/320/160Gbps,可支持10Gbps接口板,可以做到10G接口40字节线速处理能力,具有先进的10G平台系统构架和交换网络、灵活的全分布硬件转发处理、丰富的QoS特性、良好的业务支撑,可以充分满足当前和未来大型企业运营网络在业务和大容量方面飞速发展网络的需要。

3)宽带园区运营网络设计:

  宽带园区运营网络是大型企业运营网络的边缘汇聚层,是实现驻地网络运营的基础平台,针对运营网络边缘汇聚层需要多业务承载能力及高品质QOS保证的要求,港湾网络采用PowerHammer ESR系列高性能、大容量的电信级多业务路由器作为宽带园区运营网络的核心,PowerHammer ESR多业务路由器除完成宽带数据业务基本的交换路由外,还将做为专业BRAS设备为DSL宽带接入网络提供高性能认证、计费和增值业务。

4)DSL宽带接入网络设计:

  对于大型企业内部已有电话用户规模较大的住宅区,港湾网络提供Hammer10000型IP DSLAM设备组建小区的DSL宽带用户接入网,对于用户数量相对分散的小区或酒店以及商业用户港湾网络可以提供Hammer3300-48型ADSL接入设备或Hammer3100-24型VDSL设备完成接入。在DSL宽带用户认证方面,港湾网络的Hammer系列DSLAM设备可以直接提供PPPoE内嵌认证方式,用户不必另行采购BRAS设备,降低了用户建网的成本,同时也消除了带宽瓶颈,提升了网络的性能和可靠性。

5)以太网宽带接入网络设计:

  对于新建的宽带智能社区和商业楼宇,港湾网络提供由μHammer系列接入交换机和Flex Hammer/BigHammer系列交换机组建的以太网宽带接入解决方案,用户认证可以采用港湾交换机自带的802.1X认证方式或由PowerHammer ESR多业务路由器的内置BARS模块来完成PPPoE拨号认证/WEB认证。

6)IP语音运营网络设计:

  对于新建的宽带智能社区和商业楼宇,以及目前流行的IP长途电话吧,港湾网络提供VPath IP语音解决方案,港湾网络SoftUp AG/IAD接入网关设备可以灵活的部署在任何能够提供宽带以太网络接入的地方完成模拟语音用户的接入,通过SoftCo IP语音综合交换机可以实现与原有企业程控交换语音网络的互联,从而为大型企业运营网络灵活的开展语音业务提供了方便。

3、 港湾大型企业运营网络解决方案特点:

1)电信级的可靠性设计:

  港湾网络大型企业运营网络解决方案从核心层传送网到汇聚层边缘路由器全部为电信级设备,设备的主控、电源等重要部件全部支持双冗余备份设计,大大提升了网络核心业务节点的可靠性,同时为确保了运营网络的链路稳定性,港湾网络大型企业运营网络解决方案通过MSTP设备的自愈环保护和ERRP(以太网冗余环网保护技术)可以实现线路故障情况下的小于50ms的业务倒换,从而进一步的提高了整个解决网络的可靠性。

2)强大的业务处理能力:

  Power Hammer ESR系列多业务路由器是基于万兆平台设计的新一代高性能、大容量的电信级多业务路由器,ESR80、ESR50、ESR20的转发性能可分别达到416M/175Mpps、238/100Mpps、119/50Mpps,可以充分满足城域网核心等位置的转发性能要求。

3)丰富的业务提供能力:

  港湾网络大型企业运营网络解决方案可以面向矿区企业和家庭用户提供DSL宽带接入,VPN专线,电路专线,以太网宽带接入、IP语音等多种业务。同时基于Power Hammer ESR系列多业务路由器强大的组播业务支持能力和Hammer10000型IP DSLAM设备或以太网交换设备配合开展视频点播,IP TV等多种增值业务。

4)灵活的业务接入手段:

  针对矿区运营网络覆盖地域范围广,用户分散,规模不一的特点,港湾网络可以提供多种型号,不同容量的盒式DSLAM和IP语音网关设备,满足大型企业驻地网络运营公司灵活快速的开展网络运营业务的需要,盒式设备上行接口全部支持以太网接入方式,有效的利用了网络资源,减少了不必要的线路投资,节省了窄带业务的运营成本;

4、 结束语:

  随着数据设备处理能力的不断提高,带宽成本的逐渐降低,促使“三网融合”已经从理想走到了现实,利用万兆IP和软交换技术的港湾网络大型企业运营网络解决方案正是秉承这一设计理念,为大型企业通信公司的业务转型铺就成功之路。

返回顶部