基于Jexus-5.6.3使用详解

 更新时间:2021年9月22日 10:02  点击:1417

一、Jexus Web Server配置

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

jws.conf 中至少有 SiteConfigDir 和 SiteLogDir 两行信息:

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

SiteLogDir=log #指的是jexus日志文件放在log这个文件夹中,可以使用基于jws.exe文件的相对路径

重要提示:

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

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

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

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

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

二、网站配置

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

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

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

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

*** 再次强调:

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

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

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

设这个网站的配置文件的文件名为:mysite

sudo vim mysite

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

port=80 # jexus WEB服务器侦听端口(必填。当然可以是其它端口)
root=/ /var/www/mysite # 网站URL根路径(虚拟目录)和对应的物理路径,两个路径字串之间必须用空格分开(必填。既使这个网站是一个纯粹的反向代理站,也得填)

#可选项
hosts=mysite.cn,www.mysite.cn # 网站域名(建议填写),可以用泛域名,比如:*.mysite.cn(不填此项或只填一个“*”号表示这是默认网站,一个端口只能有一个默认站)
indexs=index.aspx,index.htm # 首页文件名,可以写多个,用英文逗号分开(可以不填。因为JWS系统含有常用首页名)
addr=0.0.0.0 # 绑定到服务器本机的某个IP地址,默认情况下是所有地址,即“0.0.0.0”。
aspnet_exts=mspx,ttt # 添加新出现的或自定义的ASP.NET扩展名(不建议填。多个扩展名用英文逗号分开,不加点号。系统含有常用扩展名)

B、最简配置示例

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

port=80
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 这个文件:

rewrite=^/.+?\.(asp|php|cgi)$ /404.html
# 格式:
# “rewrite=”的后面是两部分阻成,两部分之间由一个空格分开。

空格前是匹配的条件:用正则表达式描述URL的匹配条件。

空格后是匹配的目标:指的是如果用户访问的路径合乎前面的匹配条件,服务器将以哪个规则回应。

又如:

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

rewrite=^/bbs$ /bbs/index.aspx
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地址会自动归入黑名单。

配置格式,形如:
allowfrom=1.2.3.*
AllowFrom=2.2.3.3

B、禁止某IP或某IP端访问网站(黑名单功能)

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

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

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

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

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

checkquery=false

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

5、NOFILE(无文件)功能

nofile=/mvc/controller.aspx

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

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

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

6、NOLOG(无日志)功能

nolog=yes

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

7、长连接开关

keep_alive=true

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

8、反向代理功能

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连接:

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

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

对于unix sockets:

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

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

10、启用gzip压缩功能

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中设置,格式是。

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

httpd.MaxCpuTime=单个工作进程可消耗Cpu资源的总时间。单位是“秒”,可取值范围是300-14400的整数。0表示禁用此项

三、操作Jexus

1、基本操作:

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

命令参数与对应的功效:

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

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

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

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

四、卸载Jexus

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

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

以上这篇基于Jexus-5.6.3使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持猪先飞。

[!--infotagslink--]

相关文章

  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • php类的使用实例教程

    php类的使用实例教程 <?php /** * Class program for yinghua05-2 * designer :songsong */ class Template { var $tpl_vars; var $tpl_path; var $_deb...2016-11-25
  • 双冒号 ::在PHP中的使用情况

    前几天在百度知道里面看到有人问PHP中双冒号::的用法,当时给他的回答比较简洁因为手机打字不大方便!今天突然想起来,所以在这里总结一下我遇到的双冒号::在PHP中使用的情况!双冒号操作符即作用域限定操作符Scope Resoluti...2015-11-08
  • 浅析Promise的介绍及基本用法

    Promise是异步编程的一种解决方案,在ES6中Promise被列为了正式规范,统一了用法,原生提供了Promise对象。接下来通过本文给大家介绍Promise的介绍及基本用法,感兴趣的朋友一起看看吧...2021-10-21
  • 使用jquery修改表单的提交地址基本思路

    基本思路: 通过使用jquery选择器得到对应表单的jquery对象,然后使用attr方法修改对应的action 示例程序一: 默认情况下,该表单会提交到page_one.html 点击button之后,表单的提交地址就会修改为page_two.html 复制...2014-06-07
  • PHP mysql与mysqli事务使用说明 分享

    mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。应用比较多的地方是 mysqli的事务。...2013-10-02
  • Postman安装与使用详细教程 附postman离线安装包

    这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-05
  • vs2019安装和使用详细图文教程

    这篇文章主要介绍了vs2019安装和使用详细图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25