Tony Bennett – White Christmas

I’m dreaming of a white Christmas
我梦想有一次白色的圣诞节
Just like the ones I used to know
就像我曾经知道的那样
Where the treetops glisten
and children listen
To hear sleigh bells in the snow.

在那儿,雪花飘舞,圣诞树闪闪发光,孩童们在静候雪橇铃声

I’m dreaming of a white Christmas
我梦想有一次白色的圣诞节
With every Christmas card write
每张圣诞卡片上都会写
May your days be merry and bright
愿你的生活快乐光明
And may all your Christmases be white.
愿你总能度过白色的圣诞节

I’m dreaming of a white Christmas
我梦想有一次白色的圣诞节
Just like the ones I used to know
就像我曾经知道的那样
Where the treetops glisten
and children listen
在那儿,雪花飘舞,圣诞树闪闪发光,孩童们在静候雪橇铃声
I’m dreaming of a white Christmas
我梦想有一次白色的圣诞节
With every Christmas card I write
每张圣诞卡片上都会写
May your days be merry and bright
愿你的生活快乐光明
And may all your Christmases be white.
愿你总能度过白色的圣诞节

May your days be merry and bright
愿你的生活快乐光明
And may all your Christmases be white.
愿你总能度过白色的圣诞节

Jexus-5.6.3使用详解

一、Jexus Web Server配置

在 jexus 的工作文件夹中(一般是“/usr/jexus”)有一个基本的配置文件,文件名是“jws.conf”。

jws.conf 中至少有 SiteConfigDirSiteLogDir 两行信息:

  1. SiteConfigDir=siteconf #指的是存放网站配置文件放在siteconf这个文件夹中,可以使用基于jws.exe文件的相对路径
  2. SiteLogDir=log #指的是jexus日志文件放在log这个文件夹中,可以使用基于jws.exe文件的相对路径

重要提示:
必须为Jexus指定并创建两个专用文件夹:一个是用于存放日志文件的“日志文件夹”,一个是存放网站配置文件的“网站配置文件夹”。

日志文件夹必须让jexus系统有写入权,因为它会在这儿写入jexus系统日志、网站访问日志等重要内容,安装程序中已经建了一个文件夹,名字是log。

网站配置文件夹是用存放网站配置文件的地方(安装包中已经建了这个文件夹,名字是siteconf),既使只有一个网站,也必须有这个文件夹,因为jexus启动时会从这个文件夹读取网站配置的内容。

即,默认情况下,Jexus的文件夹结构是:

  1. /usr/jexus #JWS工作目录
  2. /usr/jexus/siteconf #网站配置目录
  3. /usr/jexus/log #日志目录

二、网站配置

Jexus支持多站点,可以用不同的端口、域名、虚拟路径设置任意多的网站。

必须把所有网站配置文件放到jws.conf指定的网站配置文件夹内(这个文件夹常常是jws工作目录内的“siteconf”文件夹),这个文件夹除了网站配置文件,不能有其它任何文件,因为jexus会认为这儿的任何一个文件都代表着一个不同的网站。

每个网站有且只有一个配置文件,配置文件的文件名就是这个网站的名称,比如 www.mysite.cn这个网站,配置文件名可以写成“mysite”,当然也可以写成其它文件名,以便管理员容易记忆和识别,但要特别注意:文件名不能有空格!

一个网站可以拥有任意多的域名,不同网站不能有相同的域名,没有域名的网站只能有一个,这个没有域名的网站叫做“默认网站”,而一台服务器最多只能有一个默认网站。

再次强调:
1、网站配置文件的文件名不能有空格;
2、网站配置文件夹中只能有网站配置文件,不能有其它文件文件存在。

下面以www.mysite.cn为例,说说网站的配置:

在网站配置文件夹中建立一个文件,这个文件的名称应该有一些意义(至少要能让服务器管理员了解这个配置文件是属于哪一个网站的)。

设这个网站的配置文件的文件名为:mysite。运行以下命令,编辑配置文件:

  1. sudo vim mysite

A、网站配置的基本内容:

  1. port=80 # jexus WEB服务器侦听端口(必填。当然可以是其它端口)
  2. root=/ /var/www/mysite # 网站URL根路径(虚拟目录)和对应的物理路径,两个路径字串之间必须用空格分开(必填。既使这个网站是一个纯粹的反向代理站,也得填)
  3. #可选项
  4. hosts=mysite.cn,www.mysite.cn # 网站域名(建议填写),可以用泛域名,比如:*.mysite.cn(不填此项或只填一个“*”号表示这是默认网站,一个端口只能有一个默认站)
  5. indexs=index.aspx,index.htm # 首页文件名,可以写多个,用英文逗号分开(可以不填。因为JWS系统含有常用首页名)
  6. addr=0.0.0.0 # 绑定到服务器本机的某个IP地址,默认情况下是所有地址,即“0.0.0.0”。
  7. aspnet_exts=mspx,ttt # 添加新出现的或自定义的ASP.NET扩展名(不建议填。多个扩展名用英文逗号分开,不加点号。系统含有常用扩展名)

B、最简配置示例

最简配置只需port和root两项,如:

  1. port=80
  2. root=/ /var/www/default

注意:
以上两个条目的含义:“port=80”指本网站的服务端口是80(标准的WEB服务端口);“root=/ /var/www/default”是指该网站的的虚拟根路径是“/”,所对应的物理文件夹的绝对路径是“/var/www/default”,即网站的内容必须放到“/var/www/default”这个文件夹中。

C、网站配置的高级选项 (阅读建议:建议初学者跳过本小节)

网站配置的高级选项全是可选项,应该根据网站的实际需要选填。

灵活使用高级选项,可以架设出一台与众不同的、功能强大的服务器平台或者服务器群组。

1、使用“URL重写”功能

URL重写是指WEB服务器将访问者的请求URL路径资源按指定的匹配规则解释和匹配为另外的一个真实RUL路径资源。

比如,希望别人访问“.php”类型的文件时,服务器返回 /404.html 这个文件:

  1. rewrite=^/.+?\.(asp|php|cgi)$ /404.html

格式:
“rewrite=”的后面是两部分阻成,两部分之间由一个空格分开。
① 空格前是匹配的条件:用正则表达式描述URL的匹配条件。
② 空格后是匹配的目标:指的是如果用户访问的路径合乎前面的匹配条件,服务器将以哪个规则回应。

又如:
把“/bbs”解析为“/bbs/index.aspx”,把“/bbs/file-1” 匹配为 “/bbs/show.aspx?id=1”:

  1. rewrite=^/bbs$ /bbs/index.aspx
  2.     rewrite=^/bbs/file-([0-9]{1,6})$ /bbs/show.aspx?id=$1

格式解释:
rewrite的等号后含有两部分内容,用空隔分开。前半部分是一个正则表达式,用于描述需要URL重写的(用户浏览器中的)url路径样式,后半部分是当用户的URL合乎前面的正则表达式时,JWS应该重写和访问的真实URL路径。

2、禁止或允许某IP或IP段访问网站

A、只允许某些IP地址访问网站(白名单功能)

默认情况下,允许所有IP地址访问。如果手工设置IP地址白名单,那么,白名单之外的IP地址会自动归入黑名单。

配置格式,形如:

  1. allowfrom=1.2.3.*
  2. AllowFrom=2.2.3.3
B、禁止某IP或某IP端访问网站(黑名单功能)

默认情况下,本配置为空。如果手工添加需要禁止访问的IP地址(段),必须合乎一个规则:黑名单必须是白名单的真子集。

配置格式,形如:

  1. denyfrom=111.222.111.*
  2. denyfrom=101.201.1.132

3、禁止访问某文件夹及其子文件夹中的内容

DenyDirs=网站文件夹路径的URL路径,如 “/abcfiles”或 “~/abcfiles”,多个路径,用英文逗号分开

4、是否对请求的URL等进行安全检测

本选项默认是true,即需要检查,除非你的确需要关掉这个选项,否则可以不填,格式如下:

  1. checkquery=false

(关掉本项可以提高服务器速度,但就安全而言,不建议关掉它)

5、NOFILE(无文件)功能

  1. nofile=/mvc/controller.aspx

注意:
这是Jexus特有的功能,指的是如果服务器不存在用户要访问的文件,服务器将使用什么文件应答。

提示:
路由后,原URL路径会存贮在Jexus特有一个服务器变量“X-Real-Uri”中。

技巧:
用这个功能,或者再加上URL Rewrite功能,你完全可以把URL路径与真实路径隔离开来,达到信息隐藏和简化URL的作用。

6、NOLOG(无日志)功能

  1. nolog=yes

注意:
禁用网站日志功能会提高WEB服务器系统的的处理速度,但不足也是明显的,就是你无法详细了解网站的访问情况了。

7、长连接开关

  1. keep_alive=true

注意:
V5.6.3版默认值是true,即默认使用长连接,可以不填。

8、反向代理功能

  1. reproxy= /abc/ http://www.xxxx.com:890/abc/

参数的值由本站URL根路径和目标网站URL根路径两部分组成,之间用空隔分开。

技巧:
反向代量的目标地址可以有多个,用英文逗号分隔,如:
reproxy=/abc/ http://192.168.0.3/abc/,http://192.168.0.4/abc/
这时,当用户访问/abc/时,jexus就会随机选择一台服务器进行访问,达到负载均衡或服务器集群的效果。

9、接受FAST-CGI提供的服务

对于TCP连接:

  1. fastcgi.add=需要fast-cgi处理的文件扩展名|tcp:fast-cgi服务的IP地址:端口

示例:
fastcgi.add=php,php3|tcp:127.0.0.1:9000

对于unix sockets:

  1. fastcgi.add=需要fcgi处理的文件扩展名|socket:路径

示例:
fastcgi.add=php,php3|socket:/tmp/phpsvr

10、启用gzip压缩功能

  1. usegzip=true #即UseGzip

解释:
启用这个功能后,当用户访问“.htm”“.js”等文件时,Jexus会将这些文件进行GZIP压缩后发送给用户浏览器,这样,可以节约更多的网络带宽。

11、让Jexus的工作进程和网站工作于指定的用户权限(身份)下

jws.conf中,添加一句:httpd.user=系统中已经存在的一个用户名,如httpd.user=www-data

12、让Jexus的工作进程和ASP.NET网站工作在指定的ASP.NET版本环境中

jws.conf中,添加一句:Runtime=版本号,如:Runtime=v4.0.30319

13、启用“ASP.NET前置高速缓存”,提高网站ASP.NET应用的反应速度,减小服务器压力

这是Jexus特有的功能。功能很强劲、很实用。

方法是:在需要启用WEB平台级高速缓存的ASPX页面中加入“<%Response.AddHeader("PageCache-Time","60");%>”一句就行了,其中“60”是超时时间,单位为秒。

14、启用HTTPS进行SSL安全传输

本功能是对服务器与客户之间的数据进行加密传送,提高数据转输过程中的保密性。具体方法请访问www.linuxdot.net。

15、启用多进程并行服务

默认配置下,jexus是以单进程模式工作的,单进程的好处是配置简单,节约内存,但弱点也很明显,比如,难以充分发挥多cpu多核的性能优势,大并发承受力、容灾力较多进程弱等等。

因此,在多CPU(核)的服务器上开启多进程,有利于提高处理速度、大并发承载能力以及服务的稳定性和容错能力。

开启多个工作进程的办法:修改jws.conf文件中的httpd.processes行,去掉前边的#号,并在等于后填上需要开启的进程数量(不超过cpu核数+1,同时,最多不超过8个)。

强调:
开启多进程后,ASP.NET网站的Session状态服务不能再使用inproc模式,而应该使用“StateServer”等其它模式并在Web.config中配置“machineKey”,否则会出现Session数据丢失等现象。

16、限制每个工作进程对内存和cpu资源的消耗量

这是5.5版开始启用的参数,在jws.conf中设置,格式为:

  1. httpd.MaxTotalMemory=所有工作进程可消耗的物理内存总量

单位是“兆字节”,可取值范围是256-服务器可用物理内存大小的整数,同时,平均到每个工作进程不能少于128m,0表示由jexus根据物理内存的大小自动设置。

  1. httpd.MaxCpuTime=单个工作进程可消耗Cpu资源的总时间

单位是“秒”,可取值范围是300-14400的整数。0表示禁用此项

三、操作Jexus

1、基本操作:

原jws.start等命令在Jexus V5.6.3中已经合并为一个单一命令,即“jws”,这是一个shell脚本文件。

命令参数与对应的功效:

  1. jws start # 启动Jexus;
  2. jws start 网站名 # 启动指定的网站
  3. jws restart # 重启Jexus
  4. jws restart 网站名 # 重启指定的网站
  5. jws stop # 停止Jexus
  6. jws stop 网站名 # 停止指定的网站
  7. jws regsvr # 注册jexus所需要的全局程序集(本命令只在安装或更新jexus后才用,而且必须用一次)。
  8. jws status # Jexus是否在运行中
  9. jws -v # 显示Jexus的版本号

注意,这些脚本的拥有者应该是root,并且拥有可执行权限。

2、让Jexus能随服务器的启动而自动启动:

方法是:在/etc/rc.local文件的加入“/usr/jexus/jws start”一行。注意,路径应该是你系统中JWS的实际路径,不要把路径写错了。

四、卸载Jexus

1、在rc.local文件中删除你手工添加的开机自动启动Jexus的命令行(如果本来就没有添加过,这步操作就不必做了)

2、删除jexus文件夹及全部内容(建议只删除.exe和.dll,其它的,比如网站配置文件等不必删除,以便将来重新启用)。