第一篇:HTTP服务器
因tomcat处理静态资源的速度比较慢,所以首先想到的就是把所有静态资源(JS,CSS,image,swf)
提到单独的服务器,用更加快速的HTTP服务器,这里选择了nginx了,nginx相比apache,更加轻量级,
配置更加简单,而且nginx不仅仅是高性能的HTTP服务器,还是高性能的反向代理服务器。
目前很多大型网站都使用了nginx,新浪、网易、QQ等都使用了nginx,说明nginx的稳定性和性能还是非常不错的。
1. nginx 安装(linux)
http://nginx.org/en/download.html 下载最新稳定版本
根据自己需要的功能先下载对应模板,这里下载了下面几个模块:
openssl-0.9.8l,zlib-1.2.3,pcre-8.00
编译安装nginx:
./configure
--without-http_rewrite_module
--with-http_ssl_module
--with-openssl=../../lib/openssl-0.9.8l
--with-zlib=../../lib/zlib-1.2.3
--with-pcre=../../lib/pcre-8.00
--prefix=/usr/local/nginx
make
make install
2、nginx处理静态资源的配置
#启动GZIP压缩CSS和JS
gzip on;
# 压缩级别 1-9,默认是1,级别越高压缩率越大,当然压缩时间也就越长
gzip_comp_level 4;
# 压缩类型
gzip_types text/css application/x-javascript;
# 定义静态资源访问的服务,对应的域名:res.abc.com
server {
listen 80;
server_name res.abc.com;
# 开启服务器读取文件的缓存,
open_file_cache max=200 inactive=2h;
open_file_cache_valid 3h;
open_file_cache_errors off;
charset utf-8;
# 判断如果是图片或swf,客户端缓存5天
location ~* ^.+.(ico|gif|bmp|jpg|jpeg|png|swf)$ {
root /usr/local/resource/;
access_log off;
index index.html index.htm;
expires 5d;
}
# 因JS,CSS改动比较频繁,客户端缓存8小时
location ~* ^.+.(js|css)$ {
root /usr/local/resource/;
access_log off;
index index.html index.htm;
expires 8h;
}
# 其他静态资源
location / {
root /usr/local/resource;
access_log off;
expires 8h;
}
}
3、nginx 反向代理设置
# 反向代理服务,绑定域名www.abc.com
server {
listen 80;
server_name www.abc.com;
charset utf-8;
# BBS使用Discuz!
# 因反向代理为了提高性能,一部分http头部信息不会转发给后台的服务器,
# 使用proxy_pass_header 和 proxy_set_header 把有需要的http头部信息转发给后台服务器
location ^~ /bbs/ {
root html;
access_log off;
index index.php;
# 转发host的信息,如果不设置host,在后台使用request.getServerName()取到的域名不是www.abc.com,而是127.0.0.1
proxy_set_header Host $host;
# 因Discuz! 为了安全,需要获取客户端User-Agent来判断每次POST数据是否跟第一次请求来自同1个浏览器,
# 如果不转发User-Agent,Discuz! 提交数据就会报"您的请求来路不正确,无法提交"的错误
proxy_pass_header User-Agent;
proxy_pass http://127.0.0.1:8081;
}
# 其他请求转发给tomcat
location / {
root html;
access_log off;
index index.jsp;
proxy_pass http://127.0.0.1:8080;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
nginx详细配置参考:http://wiki.nginx.org/
转载请注明出处:http://www.blogjava.net/BearRui/
2、安装时候按默认安装即可。
3、首先要进行服务器全局参数设置:点“Edit”菜单,选“Settings”
General settings(常规设置):
Listen on Port:监听端口,其实就是FTP服务器的连接端口。
Max.Number of users:允许最大并发连接客户端的数量。
Number of Threads:处理线程。也就是CPU优先级别。数值调得越大优先级越高,一般默认即可。
下面的是超时设置,自上至下分别为:连接超时、传输空闲超时、登入超时。单位为秒。
Welcome message页面设置客户端登录成功以后显示的Welcome信息。建议不要用软件默认的,因为任何软件都不能保证没有什么漏洞,如 果在这里暴露软件名称的话,一旦这个FTP Server软件有什么安全漏洞,别有用心的人知道了服务器软件的名称就可能针对性地发起攻击。所 以建议这里设置的信息不要包含任何服务器资料。
IP Filter(IP过滤器)页面,设置IP过滤规则,在上面栏目中的IP是被禁止的,下面的是允许的。
Passive mode settings(被动传输模式设置):这个页面要重点关注。如果服务器本身直接拥有公网IP,可以选软件默认的“Default”。
倘若服务器是在局域网里面,在一个网关后面,那么就要选择第二项“Use the follwoing IP”,并且在下面的输入栏填写公网的IP地址;否则,客户端用PASV被动模式可能无法连接FTP服务器。因为服务器是在内网中,在客户端使用PASV模式连接服务器的时候,服务器收到连接请求之后需要把自身的IP地址告诉客户端,由于服务器在内网中,它侦测到的IP地址是内网的(如192.168.0.5),它把这个IP地址交给客户端,客户端自然无法连接。在这里设置了指定的IP地址后,服务器就会把这个公网合法的IP地址提交给客户端,这样才能正常建立连接。
如果服务器是动态IP的,那么可以选择下面的“Retrieve external IP address from”,利用FileZilla官方网站免费提供的IP查询页面获取当时的公网合法IP,然后服务器把这个公网合法IP地址提交给客户端。当然静态IP也可以用这个,只不过没有必要。
这个设置页面对服务器位于内网的情况非常重要。有些FTP服务器端没有这个设置项目,客户端就只能用Port主动模式连接。当然有些客户端软件针对这个问题有专门的设置,如FlashFXP的站点设置中只要选中“被动模式使用站点IP”就可以了。
对于在局域网中的服务器,如果服务器没有置于DMZ区,那么强烈建议选中下面的“Use custom port range”定义PASV端口范围。由于PASV模式中,是服务器随机打开端口,然后把打开的端口号告诉客户端,让客户端连接打开的端口。但是因为服务器处于网关后面,如果网关那里没有做对应的端口映射,客户端从外网就无法连接服务器打开的端口,导致PASV模式连接失败。在这里限定服务器打开的端口范围,然后到连接外网的网关那里,对服务器的这些端口做端口映射(虚拟服务)。这需要服务器和Internet网关设备配合设置,这样外网的客户端才能用PASV模式连接进来。
Security settings(安全设置):这里的两个选项关系到能否FXP。软件默认状态“Block incoming server-to-server transfers”和“Block outgoing server-to-server transfers”两项都是选中的,前面那项是禁止连入的服务器对传,后面是禁止传出的服务器对传。也就是说默认状态不允许FXP,如果需要使用FXP,那么就把这两个项目取消选择。注意FXP传输除了跟这个页面的设置有关,还跟IP过滤器有关。
Admin Interface setting(管理员界面设定):这个就是登录配置服务器界面的一些参数。端口号的设置在安装的时候也出现过。下面两栏可以定义允许远程登录配置的网络界面和IP地址。在最下面更改管理员口令。
Logging(日志):设定是否启用日志记录功能以及日志文件大小和文件名。
Speed Limits(速度限制):这个是全局参数,默认状态不限速。可以选中“Constant Speed Limit of”并填写限速数值来实现速度限制,下载(传出)和上传(传入)可以分别设置。还可以根据时段自定义限速规则——“Use Speed Limit Rules”,比如这台服务器或者网络连接除了做FTP服务器之外还有别的用途,需要根据时间调度,不能让FTP传输挤占所有网络带宽影响其它的网络服务;就可以通过这里设置。
Filetransfer compression(文件传输压缩设置):MODE Z FTP协议是一种实时压缩的传输协议。在这种模式下,发送方的数据在发出之前先进行压缩,再送到网络链路中传输,接收方将收到数据实时解包,在本地还原重组成原文件。这种模式可以大幅度减少网络中的数据流量,提升传输效率(速度)。当然对于已经压缩过的文件,就几乎没有效果了。要使用这种传输模式,需要服务器端和客户端都支持MODE Z协议。
勾选“Enable MODE Z support”就可以启用本服务器的MODE Z支持功能,这样,只要客户端也支持MODE Z就可以获得它带来的性能提升。“Minimum allowed compression level”和“Maximum allowed compression level”分别设置最小压缩率和最大压缩率。最下面可以输入不启用MODE Z功能的目标IP。
完成这些设置以后,点击“OK”按钮保存设置并退出服务器全局设置页面返回主界面。
下面要进行的是用户组(Group Settings)设置。在主界面点击第五个按钮或者由“Edit”——“Groups”菜单进入。
组设置是为了便于用户归类管理,相同权限的用户归属到同一个组里面,这样就不用重复多次设置每个用户的权限等参数,简化配置和管理工作。点击右边的“Add”按钮创建新组。
组创建完成以后,点“Shared folders”进入目录权限设置页面。点击中间区域的“Add”按钮添加目录。默认状态添加的第一个目录即为该组用户登录之后看到的主目录(Home Directory),主目录前面有个粗体的“H”标识。目录列表右侧分别是对该目录的操作权限设置,上面是文件权限设置,下面是目录权限设置。如果要改变主目录,只要在列表中选中需要设置为主目录的那个,然后点击“Set as home dir”按钮即可。
设置好主目录之后,再点击“Add”按钮把其余的目录依次设置进来就可以了。不过这里得注意,如果仅仅把别的目录添加进去,那么你用客户端连接之后,会发现除了主目录和它的子目录之外,别的目录都看不见。这是怎么回事?这里要说明一个概念——虚拟路径。所谓虚拟路径,就是在客户端看到的目录结构。由于一个用户只能有一个主目录,别的目录如果不映射成虚拟目录的话,客户端将看不到它。所以只有把除了主目录之外的其它目录,虚拟成主目录的子目录,这样在客户端才能看到。
比如本例,主目录是D:\Downloads,如果不做虚拟路径设置,那么客户端登录进来只能看到主目录里面的内容,还有一个E:\FTPRoot目录下面的东西看不到。如何设置虚拟路径?鼠标右键点击列表中的“E:\FTPRoot”目录,在弹出的菜单里面选“Edit aliases”编辑别名;现在要把E:\FTPRoot目录作为客户端主目录下的FTPRoot目录,那么就在弹出的窗口里面输入“D:\Downloads\FTPRoot”并点击“OK”按钮确定。注意拼写规则,路径的前面部分必须是主目录的绝对路径。这样设置之后,在客户端就可以看到一个“FTPRoot”目录,这个目录其实就是E:\FTPRoot目录。
组设置中的“Speed Limits”和“IP Filter”跟全局设置里面的速度限制和IP过滤器设置方法是一样的,请参照前面的内容。只不过这个是仅仅针对这个组的用户生效。而全局设置是对所有的用户都生效。
设置完毕之后点击“OK”按钮回到主界面。
最后一项就是设置用户(Users)。点击主界面第四个按钮或者由“Edit”——“Users”菜单进入。
点击右边的“Add”按钮创建用户,在“Password”域输入用户口令。然后从“Group membership”栏选择该用户所属的组(Group),这样该用户将继承该组的所有属性/权限,不用再单独一一设置这些参数了。这也是设置组体现的方便性,在用户比较多的时候使用组来分类会使得管理工作更加方便、高效。完毕之后点“OK”按钮保存设置并返回主界面。
当然,也可以设置一个不属于任何组的用户,这样的话,就得单独定制该用户的权限。对于少量特殊用户,可以用这种方式设置。
至此,FileZilla Server的基本设置就完成并可以运行了,但是由于我们使用的是最近版本,就有一个小问题需要最后解决一下,那就是中文乱码的问题,因为0.9.14版之后用的字符集是UTF8,使用0.9.14及之前的版本是没有中文乱码问题的,方便很简单。
下载FileZilla的一个名叫FileZillaPV的补丁:
http://sourceforge.net/project/showfiles.php?group_id=171626
选 择Patched FileZilla Server这一项,先停止FileZilla Server服务,将解压出来的FileZilla server.exe 替换安装目录下的FileZilla server.exe文件,再启动FileZilla Server服务,中文乱码的问题解决了。
至此Filezilla Server安装完毕。
已经提供了, 集成了中文乱码补丁的版本
FileZilla Server v0.9.34 英文绿色免费版(已集成中文乱码)
不熟悉英文的朋友可以使用汉化版本
FTP服务器 FileZilla Server V0.9.33 绿色汉化版
现在官方网站是php5.2.13版本,不能使用isapi格式的,所以大家可以从下载php 5.2.12版本。
选择下载镜像,随便选择哪个,点击开始下载。
下载完成后,将PHP安装包解压到磁盘目录,一般也设置到非系统盘,笔者设置的是“D:\Program\PHP”
得到解压后的文件
将“php.ini-dist”文件名修改为“php.ini”,复制到Windows安装目录“c:\windows”
将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。打开“php.ini”,找到“register_globals = Off”,修改成“register_globals = On”; 关闭错误信息显。打开“php.ini”,找到“display_errors = On”,修改成“display_errors = Off”示; 设置Extension的位置。打开“php.ini”,找到“extension_dir = "./”,本文以extension文件存放在“D:\Program\PHP\ext”为例,所以将该行修改成“extension_dir = "D:\Program\PHP\ext\"”; 让PHP支持GD库。打开“php.ini”,找到“;extension=php_gd2.dll”,将最前面的分号去掉; 让PHP支持MySql数据库。打开“php.ini”,找到“;extension=php_mysql.dll”,将最前面的分号去掉; 为了支持phpMyAdmin,打开mbstring。打开“php.ini”,找到“;extension=php_mbstring.dll”,将最前面的分号去掉; 其他的模块可以根据要求自由添加支持,方法同上,只要去掉extenstion=模块.dll前面的分号; 将“libmysql.dll”和“php5ts.dll”复制到系统目录“C:\Windows\system32”
设置IIS,让IIS支持PHP。PHP 与IIS整合时支持 CGI 和 ISAPI 两种模式,ISAPI模式效率高,性能好,稳定性稍差,CGI模式相反。一般都是先是ISAPI模式,有问题再换CGI模式。推荐使用 ISAPI 模式。下面介绍的是ISAPI 模式安装方法
打开“Internet 信息服务(IIS)管理器”,展开左侧内容,在“网站”标签上右键,选择“属性”,打开网站“属性”对话框;
点击“ISAPI筛选器”标签,点击“添加”,打开“添加/编辑筛选器属性”对话框,筛选器名称填写“PHP”,可执行文件选择“php5isapi.dll”,该文件位于php目录的根目录下,添加完毕点击“确定”确认;
点击“网站 属性”对话框的“主目录”标签,点击“主目录”下的“配置”;
打开“应用程序配置”对话框,点击“添加”,打开“添加/编辑应用程序扩展名映射”对话框;
“可执行文件”依然选择位于PHP安装目录根目录的php5isapi.dll,扩展名设置为“php”。
PHP支持设置结束,关闭“Internet 信息服务(IIS)管理器”。 重启iis,再次打开“Internet 信息服务(IIS)管理器”,查看“ISAPI筛选器”选项,这时可以看到筛选器里面多了一项,如下图所示:
添加默认文档。打开“Internet 信息服务(IIS)管理器”,展开左侧内容,在“网站”标签上右键,选择“属性”,打开网站“属性”对话框,选择“文档”标签;
点击“添加”,在“默认内容页”里输入“index.php”,点击确定,继续点击“添加”,输入“default.php”,点击确定。添加iis支持index.php和default.php为默认文档; 前面PHP支持已经设置完毕,但是这时还不能访问PHP文件,原因是Windows2003引入了新的安全机制,需要设置Web服务扩展。
打开“Internet 信息服务(IIS)管理器”,展开左侧内容,在“Web服务扩展”上右键,选择“添加一个新的web服务扩展”;
在“扩展名”中输入“php”,要求的文件还是选择位于PHP安装目录根目录的php5isapi.dll,再选中“设置扩展状态为允许”复选框,点击“确定”关闭对话框。
现在可以作一个探针测试了,在IIS根目录下建立一个名为“php.php”的文件,用记事本打开,输入
<?php
phpinfo();
?>
保存,在浏览器中打开“http://localhost/php.php”,此时应该显示如下图所示内容
PHP安装完毕。