linux版本的主機大師可否考慮將jexus作為http web server?

githall 2020-9-3 1929

linux版本的主機大師可否考慮將jexus作為http web server?

一是貴公司的面板與其他面板相比沒有什么太大的特色。

二是jexus作為一款國產(chǎn)的http web server有其獨特的優(yōu)勢。

三是jexus的作者也在成都。

jexus的官方網(wǎng)站:https://www.jexus.org/


還有可否建立一個qq交流群。

最新回復 (2)
  • 6258 2020-9-4
    引用 2
    非常感謝您的建議,稍后我向公司反饋下這個事。
  • githall 2020-9-7
    引用 3
    ******************************************************
    ***  Jexus  web  server  for  linux  V5.8.x  版的安裝使用  ***
    ******************************************************

    Jexus  web  server  for  linux  是一款基于mono環(huán)境,運行于Linux/unix操作系統(tǒng)之上,以支持ASP.NET為核心功能的高性能WEB服務器。
    www.linuxdot.net是Jexus  web  server官方網(wǎng)站,也是國內最權威的mono技術、.NET跨平臺開發(fā)技術的綜合社區(qū)。
    為了確??沙掷m(xù)良性發(fā)展,Jexus已開始接受各位愛心人士的資金捐助,支付寶帳號是  j66x@163.com  。


    Jexus  V5.8.x有如下功能特點:
    01、高性能ASP.NET服務器。這是Jexus的核心功能。不管是穩(wěn)定性、易用性還是并發(fā)承載能力、并行處理速度,Jexus對ASP.NET的支持都是非常優(yōu)秀的;
    02、支持Fast-CGI協(xié)議。通Fast-CGI,Jexus能支持包括PHP在內的所有擁有Fast-CGI服務功能的WEB應用;
    03、具有強勁的反向代理功能,同時支持多目標負載均衡。靈活運用Fast-CGI以及反向代理,Jexus可以讓你的網(wǎng)站與各種不同類型資源(如aspx/php/jsp)實現(xiàn)無縫整合。
    04、具有比反向代理更輕量速度更快的“端口轉發(fā)”功能,適合于整合具備http偵聽功能的本機應用程序,比如Asp.net  Core或者Tomcat.
    05、具備基于正則表達式的強大的URL重寫功能;
    06、擁有強大的流媒體支持能力,支持FLV/F4V視頻文件拖動播放,支持微軟平滑流媒體技術;
    07、具備可控的“ASP.NET前置緩存”,能大大提升ASP.NET網(wǎng)站的承載能力和響應速度;
    08、支持Https,具有SSL加密數(shù)據(jù)安全傳輸能力;
    09、具有基礎而實用的入侵檢測功能,能自動終止已被識別的非法請求;
    10、提供符合OWIN標準的應用層接口,支持Nancy、SignalR等符合OWIN標準的應用框架,支持WebSocket;
    11,提供AppHost管理器功能,能將asp.net  core或node.js、tomcat等“自宿主”式的以控制臺方式運行的web應用程序與網(wǎng)站整合,納入jexus統(tǒng)一管理;



    一、安裝:

    安裝前的準備工作:

    *  需要libc2.3.2或更高版本的支持(可用ldd  --version查詢版本情況),如果需要啟用https,系統(tǒng)中還需具備libssl庫文件,比如libssl.so.0.9.8。
    *  除Jexus獨立版外,系統(tǒng)需要安裝好mono  3.12.1  或更高版本(當前最新正式版本是mono  4.4.2.11)。
        Mono的官方網(wǎng)址是:www.go-mono.com。
        Mono的下載地址:http://www.go-mono.com/mono-downloads/download.html  。
        Mono的具體安裝辦法,請參考  www.linuxdot.net  上的有關文章。

    A、獨立版安裝:
        cd  /tmp
        wget  linuxdot.net/down/jexus-5.8.2-x64.tar.gz
        tar  -zxvf  jexus-5.8.2.tar.gz
        sudo  mv  jexus  /usr/
        sudo  rm  jexus-*
        cd  /usr/jexus

    B、通用版安裝與更新:
        安裝命令:  curl  jexus.org/5.8.x/install  |  sh
        更新命令:  curl  jexus.org/5.8.x/upgrade  |  sh

    二、運行測試
            復制完Jexus的文件后,Jexus就可以正常工作了。
            所以,如果你的系統(tǒng)只要mono已經(jīng)成功安裝,jexus就可以直接使用,甚至連進一步的配置也完全不需要。

            如果是升級安裝,你只需要用運行  “sudo  ./jws  start”即可啟動JWS,如果不能正常工作,常常是新版本的配置方式可能有變,你可以查查jws.conf等配置文件。
            強調:如果你服務器安裝有其它的WEB服務器,而且該服務正在運行,請停止它,以免造成端口沖突而造成Jexus無法啟動。

            如果是全新安裝,請首先建立一個默認的網(wǎng)站文件夾:/var/www/default,并在里面新建一個簡單的網(wǎng)頁,比如index.html。
            然后在Jexus工作文件夾(/usr/jexus/)中執(zhí)行“sudo  ./jws  start”命令(需要root身份),啟動jexus。
            1、用cat  log/jws.log,看看jws日志文件有沒有什么出錯的提示。
            2、如果沒有錯誤提示,請訪問一下這臺服務器,看看是否有jexus的歡迎頁,網(wǎng)址是:http://服務器IP地址/info
            3、如果已經(jīng)在網(wǎng)站中放有首頁或其它網(wǎng)頁,你就可以訪問這些網(wǎng)頁了。



    三、Jexus  web  server  配置(不是必須的,這兒寫出來,是為了用戶更好的理解jexus的工作原理):

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

    jws.conf  中至少有  SiteConfigDir  和  SiteLogDir  兩行信息:
    SiteConfigDir=siteconf            #指的是存放網(wǎng)站配置文件放在siteconf這個文件夾中,可以使用基于jws.exe文件的相對路徑
    SiteLogDir=log                            #指的是jexus日志文件放在log這個文件夾中,可以使用基于jws.exe文件的相對路徑

    重要提示:
    必須為Jexus指定并創(chuàng)建兩個專用文件夾:一個是用于存放日志文件的“日志文件夾”,一個是存放網(wǎng)站配置文件的“網(wǎng)站配置文件夾”。
    日志文件夾必須讓jexus系統(tǒng)有寫入權,因為它會在這兒寫入jexus系統(tǒng)日志、網(wǎng)站訪問日志等重要內容,安裝程序中已經(jīng)建了一個文件夾,名字是log。
    網(wǎng)站配置文件夾是用存放網(wǎng)站配置文件的地方(安裝包中已經(jīng)建了這個文件夾,名字是siteconf),既使只有一個網(wǎng)站,也必須有這個文件夾,因為jexus啟動時會從這個文件夾讀取網(wǎng)站配置的內容。
    即,默認情況下,Jexus的文件夾結構是:
    /usr/jexus                          #JWS工作目錄
    /usr/jexus/siteconf        #網(wǎng)站配置目錄
    /usr/jexus/log                  #日志目錄



    四、網(wǎng)站配置

    Jexus支持多站點,可以用不同的端口、域名、虛擬路徑設置任意多的網(wǎng)站。
    必須把所有網(wǎng)站配置文件放到jws.conf指定的網(wǎng)站配置文件夾內(這個文件夾常常jws工作目錄內的“siteconf”文件夾),這個文件夾除了網(wǎng)站配置文件,不能有其它任何文件,因為jexus會認為這兒的任何一個文件都代表著一個不同的網(wǎng)站。
    每個網(wǎng)站有且只有一個配置文件,配置文件的文件名就是這個網(wǎng)站的名稱,比如  www.mysite.cn這個網(wǎng)站,配置文件名可以寫成“mysite”,當然也可以寫成其它文件名,以便管理員容易記憶和識別,但要特別注意:文件名不能有空格!
    一個網(wǎng)站可以擁有任意多的域名,不同網(wǎng)站不能有相同的域名,沒有域名的網(wǎng)站只能有一個,這個沒有域名的網(wǎng)站叫做“默認網(wǎng)站”,而一臺服務器最多只能有一個默認網(wǎng)站。

    ***  再次強調:
            1、網(wǎng)站配置文件的文件名不能有空格;
            2、網(wǎng)站配置文件夾中只能有網(wǎng)站配置文件,不能有其它文件文件存在,因為這里的每一個文件,都被視為網(wǎng)站配置文件。

    下面以www.mysite.cn為例,說說網(wǎng)站的配置
    在網(wǎng)站配置文件夾中建立一個文件,這個文件的名稱應該有一些意義(至少要能讓服務器管理員了解這個配置文件是屬于哪一個網(wǎng)站的)
    設這個網(wǎng)站的配置文件的文件名為:mysite

    sudo  miv  mysite

    A、網(wǎng)站配置的基本內容:
    port=80                                                    #  jexus  WEB服務器偵聽端口(必填。當然可以是其它端口)
    root=/  /var/www/mysite                      #  網(wǎng)站URL根路徑(虛擬目錄)和對應的物理路徑,兩個路徑字串之間必須用空格分開(必填。既使這個網(wǎng)站是一個純粹的反向代理站,也得填)

    #可選項
    hosts=mysite.cn,www.mysite.cn        #  網(wǎng)站域名(建議填寫),可以用泛域名,比如:*.mysite.cn(不填此項或只填一個“*”號表示這是默認網(wǎng)站,一個端口只能有一個默認站)
    indexs=index.aspx,index.htm            #  首頁文件名,可以寫多個,用英文逗號分開(可以不填。因為JWS系統(tǒng)含有常用首頁名)
    addr=0.0.0.0                                          #  綁定到服務器本機的某個IP地址,默認情況下是所有地址,即“0.0.0.0”。
    aspnet_exts=mspx,ttt                          #  添加新出現(xiàn)的或自定義的ASP.NET擴展名(不建議填。多個擴展名用英文逗號分開,不加點號。系統(tǒng)含有常用擴展名)


    B、最簡配置示例
    最簡配置只需port和root兩項,如:
    port=80
    root=/  /var/www/default
    注:以上兩個條目的含義:“port=80”指本網(wǎng)站的服務端口是80(標準的WEB服務端口);“root=/  /var/www/default”是指該網(wǎng)站的的虛擬根路徑是“/”,所對應的物理文件夾的絕對路徑是“/var/www/default”,即網(wǎng)站的內容必須放到“/var/www/default”這個文件夾中。


    C、網(wǎng)站配置的高級選項  (閱讀建議:建議初學者跳過本小節(jié))
    網(wǎng)站配置的高級選項全是可選項,應該根據(jù)網(wǎng)站的實際需要選填。
    靈活使用高級選項,可以架設出一臺與眾不同的、功能強大的服務器平臺或者服務器群組。

    1、使用“URL重寫”功能
    URL重寫是指WEB服務器將訪問者的請求URL路徑資源按指定的匹配規(guī)則解釋和匹配為另外的一個真實RUL路徑資源。

    比如,希望別人訪問“.php”類型的文件時,服務器返回  /404.html  這個文件:
    rewrite=^/.+?\.(asp|php|cgi)$  /404.html
    #  格式:
    #  “rewrite=”的后面是兩部分阻成,兩部分之間由一個空格分開。
        空格前是匹配的條件:用正則表達式描述URL的匹配條件。
        空格后是匹配的目標:指的是如果用戶訪問的路徑合乎前面的匹配條件,服務器將以哪個規(guī)則回應。

    又如:
    把“/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段訪問網(wǎng)站
    A、只允許某些IP地址訪問網(wǎng)站(白名單功能)
            默認情況下,允許所有IP地址訪問。如果手工設置IP地址白名單,那么,白名單之外的IP地址會自動歸入黑名單。
            配置格式,形如:
            allowfrom=1.2.3.*
            AllowFrom=2.2.3.3
    B、禁止某IP或某IP端訪問網(wǎng)站(黑名單功能)
            默認情況下,本配置為空。如果手工添加需要禁止訪問的IP地址(段),必須合乎一個規(guī)則:黑名單必須是白名單的真子集。
            配置格式,形如:
            denyfrom=111.222.111.*
            denyfrom=101.201.1.132

    3、禁止訪問某文件夾及其子文件夾中的內容
    DenyDirs=網(wǎng)站文件夾路徑的URL路徑,如  “/abcfiles”或  “~/abcfiles”,多個路徑,用英文逗號分開

    4、是否對請求的URL等進行安全檢測
    本選項默認是true,即需要檢查,除非你的確需要關掉這個選項,否則可以不填,格式如下:
    checkquery=false
    (關掉本項可以提高服務器速度,但就安全而言,不建議關掉它)

    5、NOFILE(無文件)功能
    nofile=/mvc/controller.aspx
    (注:這是Jexus特有的功能,指的是如果服務器不存在用戶要訪問的文件,服務器將使用什么文件應答。)
    (提示:路由后,原RUL路徑會存貯在Jexus特有一個服務器變量“X-Real-Uri”中)
    (技巧:用這個功能,或者再加上URL  Rewrite功能,你完全可以把URL路徑與真實路徑隔離開來,達到信息隱藏和簡化URL的作用。)

    6、NOLOG(無日志)功能
    nolog=yes
    (注:禁用網(wǎng)站日志功能會提高WEB服務器系統(tǒng)的的處理速度,但不足也是明顯的,就是你無法詳細了解網(wǎng)站的訪問情況了)

    7、長連接開關
    keep_alive=true
    注:默認使用長連接,可以不填。

    8、反向代理功能
    reproxy=  /abc/  http://www.xxxx.com:890/abc/
    參數(shù)的值由本站RUL根路徑和目標網(wǎng)站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        #  默認已啟用

    解釋:啟用這個功能后,當用戶訪問“.htm”“.js”等文件時,Jexus會將這些文件進行GZIP壓縮后發(fā)送給用戶瀏覽器,這樣,可以節(jié)約更多的網(wǎng)絡帶寬。

    11、讓Jexus的工作進程和網(wǎng)站工作于指定的用戶權限(身份)下
    在jws.conf中,添加一句:httpd.user=系統(tǒng)中已經(jīng)存在的一個用戶名,如httpd.user=www-data

    12、讓Jexus的工作進程和ASP.NET網(wǎng)站工作在指定的ASP.NET版本環(huán)境中
    在jws.conf中,添加一句:Runtime=版本號,如:Runtime=v4.0.30319
    注:本項配置只適合jexus5.6及以下低版本。

    13、啟用“ASP.NET前置高速緩存”,提高網(wǎng)站ASP.NET應用的反應速度,減小服務器壓力
    這是Jexus特有的功能。功能很強勁、很實用。
    方法是:在需要啟用WEB平臺級高速緩存的ASPX頁面中加入“<%Response.AddHeader("PageCache-Time","60");%>”一句就行了,其中“60”是超時時間,單位為秒。

    14、啟用HTTPS進行SSL安全傳輸
        A、添加全服務器使用的SSL配置:如果需要,可以添加一個ssl配置為所有沒有單獨配置ssl的網(wǎng)站提供共享,這個配置,對支持泛域名的證書提供了方便。
              方法是,修改jws.conf中的“CertificateFile”和“CertificateKeyFile”項,分別填寫證書文件和私鑰文件(絕對路徑)。
        B、為指定的網(wǎng)站添加SSL配置:方法是修改網(wǎng)站配置文件,分別為“ssl.certificate”和“ssl.certificatekey”條目填寫證書文件和私鑰文件(絕對路徑)。
    注1:網(wǎng)站啟用https,port必須設為443,并且UseHttps的值設為true。
    注2:Jexus  Https需要名為libssl的函數(shù)庫支持,如果你服務器沒有l(wèi)ibss.so.xxx文件,需要安裝openssl。
              對于通用版,把libssl注冊到  /usr/etc/mono/config中,即向這個文件添加一行(假設libssl的文件名是"libssl.so.1.0.0"):
              “<dllmap  dll="libssl"  target="/lib/x86_64-linux-gnu/libssl.so.1.0.0"  />”
              對于獨立版,只需要把libssl軟連到  jexus的runtime/lib文件夾中就行,如:
              “sudo  ln  -s  //lib/x86_64-linux-gnu/libssl.so.1.0.0    /usr/jexus/runtime/lib/libssl.so”
    注3:如果單獨為網(wǎng)站配備SSL證書,那么該站的hosts項填寫的域名需要與SSL證書支持的域名一致。

    15、啟用多進程并行服務
    默認配置下,jexus是以單進程模式工作的,單進程的好處是配置簡單,節(jié)約內存,但弱點也很明顯,比如,難以充分發(fā)揮多cpu多核的性能優(yōu)勢,大并發(fā)承受力、容災力較多進程弱等等。
    因此,在多CPU(核)的服務器上開啟多進程,有利于提高處理速度、大并發(fā)承載能力以及服務的穩(wěn)定性和容錯能力。
    開啟多個工作進程的辦法:修改jws.conf文件中的httpd.processes行,去掉前邊的#號,并在等于后填上需要開啟的進程數(shù)量(不超過cpu核數(shù)+1,同時,最多不超過24個)。
    強調:開啟多進程后,ASP.NET網(wǎng)站的Session狀態(tài)服務不能再使用inproc模式,而應該使用“StateServer”等其它模式并在Web.config中配置“machineKey”,否則會出現(xiàn)Session數(shù)據(jù)丟失等現(xiàn)象。

    16、限制每個工作進程對內存和cpu資源的消耗量
    這是5.5版開始啟用的參數(shù),在jws.conf中設置,格式是。
    httpd.MaxTotalMemory=所有工作進程可消耗的物理內存總量。單位是“兆字節(jié)”,可取值范圍是256-服務器可用物理內存大小的整數(shù),同時,平均到每個工作進程不能少于128m,0表示由jexus根據(jù)物理內存的大小自動設置。
    httpd.MaxCpuTime=單個工作進程可消耗Cpu資源的總時間。單位是“秒”,可取值范圍是300-14400的整數(shù)。0表示禁用此項

    17、應用程序端口轉發(fā)
        格式:AppHost.Port=端口號
        本配置指的是將當前配置的網(wǎng)站端口的數(shù)據(jù)轉發(fā)到應用程序偵聽端口,比如可以把該站80端口的請求轉發(fā)到Asp.net  Core應用程序的5000端口上。
        端口轉發(fā)與反向代理功能相近,但端口轉發(fā)的性能更高。
        注意:一是端口轉發(fā)不能用于虛擬路徑不是“/”的網(wǎng)站;二是端口轉發(fā)只能在同一服務器上進行。

    18、AppHost功能:驅動自宿主WEB應用程序
        格式:AppHost={CmdLine=命行行;  AppRoot=工作路徑;  Port=端口號}
        說明:CmdLine:必選項。表示啟動這個web應用程序的命令(含參數(shù)),如  CmdLine=/var/www/mysite/webapp
                    AppRoot:必選項。表示這個應用程序的工作目錄,如:AppRoot=/var/www/mysite
                    Port:可選項。表示這個應用程序的偵聽端口,多個端口用英文逗號分隔(注:如果沒有填寫這一項,就請在AppHost.port或reproxy中填寫端口號,否則,請求數(shù)據(jù)無法轉發(fā)給應用程序)。
                    Env:可選參數(shù)。表示這個應用程序工作時需要的環(huán)境變量,如  Env=(PATH=/myhost/bin:$PATH),多個設置用英文逗號分開。
                    ErrLog:可選項。表示將這個應用程序的異常輸出重定向到指定的文件(需填寫完整路徑);
                    OutLog:可選項。表示將這個應用程序的控制臺輸出重定向到指定的文件(需填寫完整路徑);
                    User:  可選項。以指定的用戶身份運行該應用程序,默認為root身份。
        注意:
            1,AppHost像AppHost.Port一樣,不支持虛擬路徑;
            2,AppHost功能是將指定的具有http服務能力的web應用程序納入jexus工作進程進行管理,對Asp.Net  Core或Node.js等自宿主web程序用于生產(chǎn)環(huán)境具有重要的意義。

    五、操作Jexus:
    1、基本操作:
          原jws.start等命令在Jexus  V5.8.x中已經(jīng)合并為一個單一命令,即“jws”,這是一個shell腳本文件。

          命令參數(shù)與對應的功效:
          jws  start                      :  啟動Jexus;
          jws  start  網(wǎng)站名        :  啟動指定的網(wǎng)站
          jws  restart                  :  重啟Jexus
          jws  restart  網(wǎng)站名    :  重啟指定的網(wǎng)站
          jws  stop                        :  停止Jexus
          jws  stop  網(wǎng)站名          :  停止指定的網(wǎng)站
          jws  regsvr                    :  注冊jexus所需要的全局程序集(本命令只在安裝或更新jexus后才用,而且必須用一次,jexus獨立版不需要本命令)。
          jws  status                    :  Jexus是否在運行中
          jws  -v                            :  顯示Jexus的版本號

          注意,這些腳本的擁有者應該是root,并且擁有可執(zhí)行權限。

    2、讓Jexus能隨服務器的啟動而自動啟動:
          方法是:在/etc/rc.local文件的加入“/usr/jexus/jws  start”一行。注意,路徑應該是你系統(tǒng)中JWS的實際路徑,不要把路徑寫錯了。



    六、卸載:
        1、在rc.local文件中刪除你手工添加的開機自動啟動Jexus的命令行(如果本來就沒有添加過,這步操作就不必做了)
        2、刪除jexus文件夾及全部內容(建議只刪除*.exe和*.dll,其它的,比如網(wǎng)站配置文件等不必刪除,以便將來重新啟用)。



    七、信息反饋、技術交流等聯(lián)系方式:
        官方網(wǎng)站:www.jexus.org
        技術社區(qū):www.linuxdot.net
        QQ群號碼:102732979,103810355
        郵箱地址:j66x@163.com


    八、重要聲明:
        1,Jexus  V5.8.x  是免費軟件,可以自由下載、傳播和使用。但Jexus作者、發(fā)布者、維護者不對Jexus的用途、作用、效果、技術支持以及其它相關內容作任何明確或暗含的承諾,不負擔任何直接或間接的責任。
        2,為了確保Jexus的良性發(fā)展并為您提供更好的服務,Jexus需要得到廣大用戶和支持免費軟件發(fā)展事業(yè)的熱心人的大力支持:
            A、您可以利用各種機會宣傳Jexus優(yōu)良品質、實用價值及成功案例,為Jexus的發(fā)展進步搖旗助威;
            B、您可以為初學者解難答疑,發(fā)布使用心得和技術理論,為推廣、普及Jexus的部署和應用作出貢獻;
            C、你可以將Jexus的一些重要的技術文檔翻譯為英文或其它文字并公開、免費發(fā)布,為Jexus跨出國門走向國際添磚加瓦;
            D、您可以利用開發(fā)新工程或升級舊工程的機會,利用Jexus把原來部署在WINDOWS上的WEB應用部署到Linux上;
            E、您可以通過Jexus社區(qū)、QQ群、郵箱等各種渠道及時反饋Jexus的BUG,或者向Jexus的開發(fā)者、維護者提供富有建設性意義的各種建議;
            F、您可以為Jexus提供廣告支持,或向開發(fā)者提供適量的經(jīng)費贊助,為Jexus的持續(xù)發(fā)展提供動力源泉,Jexus作者的支付寶賬號是  j66x@163.com  。
返回
發(fā)新帖