在Linux系统中高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。
解决方法:
通过修改Linux内核参数,可以减少linux服务器的IME_WAIT套接字数量。
vi /etc/sysctl.conf
增加以下几行:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
说明:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
执行以下命令使配置生效:
/sbin/sysctl -p
一、IIS7.0 配置 ASP.NET2.0
1、ASP.NET 2.0 部署
1)首先打开win7 的特性,路径我已标注
下面选中的是ASP.NET2.0, 如果要支持ASP.NET1.1,你的选中IIS6兼容
2.)设置安全选项
3)添加.Net经典应用程序池
4)将站点转换为Application
5)为站点添加 yourmachinename\IIS_IUSRS权限
6.)右键站点—Manage Application-Advanced Setting 设置当前站点为Classic .Net AppPool
2. 部署WCF
打开“开始|所有程序|附件|命令提示符”,输入“cd C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation”,回车。再输入“ServiceModelReg.exe -i”,回车。
3. 部署ASP.NET MVC
在IIS7下,部署ASP.NET MVC是最方便的,只需做如下的配置,添加一个集成模式的.NET Application Pool,将它指定给你的ASP.NET MVC Application。
注:vista和Win7 正版用的都是IIS7,所以配置是一样的。
二、windows server 2008 iis7.0的共享配置
配置windows server 2008 iis7.0的共享主要是为了方便如果您有2台IIS服务器,我第一台的IIS有个网站,名称为winos吧,第2台IIS没有网站(把默认的删除了),配置好共享配置以后,然后刷新第2台IIS服务器就出来第一台我建的名称为winos网站了,并且我随意在哪台更改什么配置,会自动同步到另一台的IIS那边,原因很简单因为他们使用的是一个配置文件。
1、新建2个共享文件夹,winos存我的网页文件,共享存我的配置文件
2、在第一台的iis上新建一个网站,名称为winos,路径为我共享的的winos文件夹的路径。
1)设置一下连接的凭据
2)看看是否能够在本机浏览
3、配置共享配置,双击共享的配置
1)点击右边导出配置,我们先把配置文件导出
2)在物理路径哪里填写我前面共享的文件,并填写加密的密钥
3)点击连接为设置连接的凭据,点击确定
4)配置位置,启用共享的配置,并填写相关信息
5)输入加密密钥的密码
OK我们第一台的IIS配置完毕
4、:配置第2台IIS服务器(如下图,第2台IIS服务器一个网站也没有)
1)点击共享的配置,填写相关信息
2)输入加密的密钥
3)点击刷新
4)我们在第一台iis服务器建的名称为winos的网站出来了
5)输入网址浏览一下
三、Win7下配置IIS 7.0 php操作环境
注:我们采用的是IIS v7.0+php+mysql+zend在Win7下构建操作环境。
1.、安装IIS v7.0
1)控制面板-程序和功能-打开或关闭Windows 功能
2)测试是否成功安装IIS v7.0,在浏览器输入:
http://localhost/
http://127.0.0.1/%3C/A%3E%3C/P
出现如上界面说明成功安装IIS v7.0
3)新建站点:(默认的站点用作asp/asp.net/,启动8080端口,即访问使用http://localhost:8080/)
2.、配置PHP环境
PHP下载地址:http://soft.huweishen.com/soft/263.html。
1)下载php之后解压到G:\php
2)添加ISAPI筛选器:
3)添加脚本映射:
4)添加应用程序池:
5)更改站点应用程序池,并添加默认文档index.php。
6)修改G:/PHP/php.ini-list 文件名为php.ini,复制到F:/windows/(双系统,Windows 7所在盘符),修改php.ini:使之支持GD,mysql等。
7)修改extension_dir目录:
8)复制libmcrypt.dll,libmysql.dll,php5ts.dll三个文件到F:/windows/System32(双系统,Windows 7所在盘符)下,在默认目录新建一个index.php
9)输入<A href='http://127.0.0.1:8080/'>http://127.0.0.1:8080/</A> 校验是否成功安装php :
3.、添加Mysql数据库:
Mysql下载地址:http://www./softs/2193.html。
1)安装Mysql:
2)设置Mysql(这里我们就不详细讲解了,配置教程详见http://www./article/23876.htm。)
3)校验mysql是否正确安装:
a、检测服务管理器中:mysql是否启动:
b、使用phpmyadmin能否接入mysql:
OK mysql已经正确安装,可以使用了。
因为Zend Optimizer的安装不需要任何配置,所以此处省略。安装成功Zend Optimizer之后我们win7下的PHP环境就配置成功了。
IIS7.0的功能真的是非常实用,功能齐全,比如它的最大化的桌面图形化操作系统,可维护性优秀,且基于IIS v6.0/v7.0(2008),可以支持的脚本相当完整,不仅支持Linux无法支持的asp/asp.net,还可以安装php、mysql、zend实现php环境。同时,利用Serv-U可以实现ftp管理。操作简单,无需键入任何命令就可实现全能型主机。真的是值得下载一用啊!!
IIS7.0下载地址:http://www./softs/35697.html。本文部分资料参考网络。
网站环境 IIS6.0,操作系统Windows server2003 sp2,服务器之前已经部署了.net 2.0和asp的网站,现在要部署新开发的.net 4.0网站.本来认为很简单,却遇到了很多问题,下面详细描述下过程:
1.官网下载.net framework4.0,下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718,或者到下载(http://www./softs/69112.html),下载后安装.安装后,原有.net 2.0网站的Asp.Net Version会出现自动升级到4.0的情况,所以记得改回2.0。
2.修改IIS的web服务扩展,默认安装后的ASP.NET v4.0.30319是禁止的,要修改为允许, 如下图2-1;不然就会出现访问网页的时候,出现找不到该页404的错误;
图2-1
3.为4.0程序创建应用程序池,2.0和4.0网站不能共用一个应用程序池,不然会在我的电脑—右键--管理--系统工具--事件查看器—应用程序中出现如下图3-1的错误。
图3-1
通过Internet信息服务—我的应用程序池—新建—应用池,弹出如下图3-2:
图3-2
4、新建.Net 4.0的网站,在主目录勾选应用程序池,如下图4-1
图4-1
并在Asp.net处勾选Asp.Net version为4.0;
5、这时候访问2.0和4.0网站出现service unavailable的情况,查看事件查看器报如下错误: HTTP 筛选器 DLL v4.0.30319\aspnet_filter.dll 加载失败。数据是错误;通过查找文档发现,有人用Process Monitor工具监视一下w3wp.exe的文件访问,发现C:\Windows\System32\MSVCR100_CLR0400.dll 这个文件没有权限,那么找到这个文件,做如下图5-1操作:添加IIS_