小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux 使用Jexus 托管 ASP.NET Core 應(yīng)用程序

 圖書(shū)館煮飯少年 2017-05-20


來(lái)源:玩雙截棍的熊貓

cnblogs.com/staneee/p/6852559.html


第一步 安裝.Net Core環(huán)境


安裝 dotnet 環(huán)境參見(jiàn)官方網(wǎng)站 https://www.microsoft.com/net/core。


選擇對(duì)應(yīng)的系統(tǒng)版本進(jìn)行安裝。安裝完成過(guò)后 輸入命令查看版本,目前最新版為 1.04:


dotnet --version


此時(shí)已經(jīng)可以發(fā)布Asp.Net Core應(yīng)用程序到Linux上運(yùn)行了


將Asp.Net Core程序發(fā)布到Linux服務(wù)器上,通過(guò) dotnet 命令來(lái)運(yùn)行,如:


dotnet /應(yīng)用程序全路徑/應(yīng)用程序名.dll 


成功運(yùn)行后會(huì)顯示 :  


Hosting environment: Production

Content root path: /應(yīng)用程序全路徑/

Now listening on: http://localhost:5000

Application started. Press Ctrl C to shut down.


(Asp.Net Core應(yīng)用程序默認(rèn)使用5000端口,可以在項(xiàng)目 Program.cs 中進(jìn)行自定義端口,但不建議在Program.cs中進(jìn)行自定義端口)


但是這個(gè)時(shí)候,只要關(guān)閉當(dāng)前的 ssh 會(huì)話 那么 Asp.Net Core應(yīng)用程序就會(huì)結(jié)束運(yùn)行。


那么該怎么辦呢?使用 Jexus ! (需要使用5.8.2 版本或更高版本的)https://news.cnblogs.com/n/569277/


Jexus 官網(wǎng)地址: https://www./


Jexus 官網(wǎng)論壇: https://www.


第二步 安裝Jexus


安裝 Jexus 直接使用一下命令即可(需要在root身份下執(zhí)行):


curl https:///release/x64/install.sh|sh


安裝成功后會(huì)提示:OK, Jexus has been installed in /usr/jexus.


第三步 發(fā)布程序到Linux服務(wù)器


將的Asp.Net Core 應(yīng)用程序文件夾 發(fā)布到Linux服務(wù)器的  /var/www/   路徑下


(如果 www 文件夾不存在,則使用    mkdir /var/www/    命令創(chuàng)建 www 文件夾)


此時(shí),應(yīng)用程序所在的完整路徑為    /var/www/應(yīng)用程序文件夾/應(yīng)用程序名稱.dll


第四步 配置Jexus運(yùn)行Asp.Net Core應(yīng)用程序


使用以下命令:


1、切換到Jexus配置文件目錄


cd /usr/jexus/siteconf


2、復(fù)制默認(rèn)的配置文件為test


cp default test


3、編輯test配置文件


vi test


test文件默認(rèn)內(nèi)容為:


######################

# Web Site: Default 

########################################


port=80

root=/ /var/www/default

hosts=*    #OR your.com,*.your.com


# addr=0.0.0.0

# CheckQuery=false

NoLog=true

# AppHost={CmdLine=/usr/local/x/xx;AppRoot=/usr/local/x;Port=5000}

# NoFile=/index.aspx

# Keep_Alive=false

# UseGZIP=false


# UseHttps=true

# ssl.certificate=/x/xxx.crt  #or pem

# ssl.certificatekey=/x/xxx.key

# ssl.protocol=TLSv1.0    # TLSv1.1 or  TLSv1.2...

# ssl.ciphers= 


# DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24

# AllowFrom=192.168.*.*

# DenyDirs=~/cgi, ~/upfiles

# indexes=myindex.aspx

# rewrite=^/. ?\.(asp|php|cgi|pl|sh)$ /index.aspx

# reproxy=/bbs/ http://192.168.1.112/bbs/

# host.Redirect=abc.com www.abc.com  301

# ResponseHandler.Add=myKey:myValue


# Jexus php fastcgi address is '/var/run/jexus/phpsvr'

#######################################################

# fastcgi.add=php|socket:/var/run/jexus/phpsvr


# php-fpm listen address is '127.0.0.1:9000'

############################################

# fastcgi.add=php|tcp:127.0.0.1:9000


編輯完成后 test 的內(nèi)容為(注意AppHost中的每一項(xiàng)結(jié)尾應(yīng)該有英文半角的分號(hào)):


######################

# Web Site: test

########################################


port=8888                    

root=/ /var/www/應(yīng)用程序文件夾/

hosts=*   #OR your.com,*.your.com 

AppHost={

  cmd=dotnet 應(yīng)用程序名稱.dll;   

  root=/var/www/應(yīng)用程序文件夾/;  

  port=0;       

}


# addr=0.0.0.0

# CheckQuery=false

NoLog=true

# AppHost={CmdLine=/usr/local/x/xx;AppRoot=/usr/local/x;Port=5000}

# NoFile=/index.aspx

# Keep_Alive=false

# UseGZIP=false


# UseHttps=true

# ssl.certificate=/x/xxx.crt  #or pem

# ssl.certificatekey=/x/xxx.key

# ssl.protocol=TLSv1.0    # TLSv1.1 or  TLSv1.2...

# ssl.ciphers= 


# DenyFrom=192.168.0.233, 192.168.1.*, 192.168.2.0/24

# AllowFrom=192.168.*.*

# DenyDirs=~/cgi, ~/upfiles

# indexes=myindex.aspx

# rewrite=^/. ?\.(asp|php|cgi|pl|sh)$ /index.aspx

# reproxy=/bbs/ http://192.168.1.112/bbs/

# host.Redirect=abc.com www.abc.com  301

# ResponseHandler.Add=myKey:myValue


# Jexus php fastcgi address is '/var/run/jexus/phpsvr'

#######################################################

# fastcgi.add=php|socket:/var/run/jexus/phpsvr


# php-fpm listen address is '127.0.0.1:9000'

############################################

# fastcgi.add=php|tcp:127.0.0.1:9000


編輯完成后,在英文半角輸入法下   按 Esc 鍵 輸入  :wq  完成保存文件修改并退出  (以上修改會(huì)在下面進(jìn)行詳細(xì)說(shuō)明)


4、啟動(dòng)/重啟 Jexus


當(dāng)配置文件編輯完成后使用以下命令對(duì)Jexus進(jìn)行 啟動(dòng)/重啟


# 如果已啟動(dòng) Jexus:

sh /usr/jexus/jws restart


# 如果未啟動(dòng) Jexus:

sh /usr/jexus/jws start


啟動(dòng)/重啟成功后,在瀏覽器中輸入  ip地址/域名:端口號(hào) 例如(192.168.1.1:8888 或 www.aspnetcore.com:8888 )  即可訪問(wèn)Asp.Net Core應(yīng)用程序


以上即是Jexus托管Asp.Net Core應(yīng)用程序的配置全過(guò)程


通過(guò)微軟官方的介紹,Asp.Net Core應(yīng)用程序是運(yùn)行在 Kestrel 服務(wù)器上的,


那么Jexus和Kestrel之間的關(guān)系什么呢?正如 Apache與Tomcat之間的關(guān)系.


Jexus作為Web服務(wù)器,Kestrel是應(yīng)用服務(wù)器,Jexus會(huì)將瀏覽器發(fā)送的請(qǐng)求轉(zhuǎn)交給Kestrel,Kestrel 根據(jù)請(qǐng)求 交給Asp.Net Core應(yīng)用程序 處理后將處理結(jié)果返回到到Jexus,再由Jexus響應(yīng)到瀏覽器,如圖所示:



通過(guò)上面的圖片我們可以看到一次完整的請(qǐng)求響應(yīng)的過(guò)程。


那么Jexus是怎么將請(qǐng)求轉(zhuǎn)發(fā)到 Kestrel 服務(wù)器中的Asp.Net Core應(yīng)用程序上的呢?


這里不得不感嘆Jexus的強(qiáng)力與使用的便捷,只需要簡(jiǎn)單的編輯配置文件即可。


在上面 第四步 配置Jexus運(yùn)行Asp.Net Core應(yīng)用程序 時(shí),test文件編輯后的內(nèi)容含義 


port=8888          # 外部訪問(wèn)的端口號(hào),可以改成你想要的端口號(hào),外部訪問(wèn)通過(guò) ip/域名:端口號(hào) 即可訪問(wèn)

root=/ /var/www/應(yīng)用程序文件夾/  # 應(yīng)用程序的工作根目錄(全路徑)

hosts=*                        #OR your.com,*.your.com # 如果為服務(wù)器設(shè)置了DNS解析,則可以填寫(xiě)解析到服務(wù)器的域名,如:www.myweb.com


AppHost={                      # 最最最重要的配置

  cmd=dotnet 應(yīng)用程序名稱.dll;   # 命令,啟動(dòng)Asp.Net Core應(yīng)用要執(zhí)行的命令


  root=/var/www/應(yīng)用程序文件夾/; # Asp.Net Core應(yīng)用程序所在的全路徑 


  port=0;                      # Asp.Net Core應(yīng)用程序所使用的端口號(hào),如果在程序中使用了UsrUrls自定義端口則使用UsrUrls中填寫(xiě)的端口(不建議使用UsrUrls自定義端口),

                               # 在沒(méi)有使用UsrUrls自定義端口的情況下端口號(hào)設(shè)置為 0,Jexus會(huì)在運(yùn)行時(shí)與Asp.Net Core進(jìn)行'協(xié)商'具體使用的端口號(hào),避免多個(gè)應(yīng)用分配                                  # 端口的麻煩和沖突的風(fēng)險(xiǎn)。                  

}


配置的重點(diǎn)就在于AppHost中,需要注意的是在AppHost中的port(端口號(hào))不代表Jexus對(duì)外服務(wù)的port(端口號(hào)),而是指要轉(zhuǎn)發(fā)的 Asp.Net Core應(yīng)用程序的端口號(hào),簡(jiǎn)單來(lái)說(shuō)就是會(huì)將外部的請(qǐng)求轉(zhuǎn)發(fā)到這個(gè)端口,由這個(gè)端口對(duì)應(yīng)的Asp.Net Core應(yīng)用程序?qū)φ?qǐng)求進(jìn)行處理。


強(qiáng)烈推薦“協(xié)商端口”,而不是在Asp.Net Core中使用UsrUrls設(shè)置端口,避免多個(gè)應(yīng)用分配端口的麻煩和沖突的風(fēng)險(xiǎn)


看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多人

關(guān)注「DotNet」,提升.Net技能 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多