日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

15分钟从零开始搭建支持10w+用户的生产环境(三)

發(fā)布時間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 15分钟从零开始搭建支持10w+用户的生产环境(三) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上一篇文章介紹了這個架構(gòu)中,選擇MongoDB做為數(shù)據(jù)庫的原因,及相關(guān)的安裝操作。

原文地址:15分鐘從零開始搭建支持10w+用戶的生產(chǎn)環(huán)境(二)

?

三、WebServer

在SOA和gRPC大行其道的今天,WebServer在系統(tǒng)中屬于重中之重,是一個系統(tǒng)的發(fā)動機。

?

在第一篇文章中我們說過,服務器需要用Linux。

傳送門:15分鐘從零開始搭建支持10w+用戶的生產(chǎn)環(huán)境(一)

?

Java在Linux上,一向做得很好。Apache的安裝調(diào)試,在網(wǎng)上隨便找。再不濟,還有各種大牛的一鍵安裝,夠了。

?

但是,今天我不說Java,而要說說Microsoft,說說Dotnet Framework和Dotnet core。

很多人想到Dotnet,就會想到IIS,想到這東西需要跑到Windows上。但實際上,這已經(jīng)是一個很老很過時的概念了。

Dotnet Framework和Dotnet core,幾年前就可以在Linux上開發(fā)、調(diào)試和應用了。

只不過,兩個框架在應用上稍有區(qū)別。

Framework需要Mono框架的支持,是Windows下編譯的DLL,通過Mono框架在LInux下運行。

而Dotnet core,從第一天就是為跨平臺而生的。一套代碼,可以跑在Windows、Linux、MacOS、Arm下,不需要任何額外的設置。

?

Nginx可以支持Dotnet在Linux上運行。不過那個安裝過程之復雜,是會讓高手都眼暈的。

Dotnet core本身有SelfHost功能,可以直接運行。但是,對于復雜一點的系統(tǒng),會有多個API應用,因為做不到統(tǒng)一管理,后續(xù)操作又會麻煩。

今天我們介紹一個神器,叫Jexus

?

Jexus是國內(nèi)大神「宇內(nèi)流云」的作品,本身并不開源,但可以免費使用。

Jexus官網(wǎng):https://linuxdot.net

Jexus完整實現(xiàn)了我們對于WebServer的全部期望:

  • 正向代理

  • 反向代理

  • 負載均衡

  • 緩存

同時,實測生產(chǎn)環(huán)境的應用,響應效率超過Nginx。

Jexus不僅可以運行在各種版本的Linux下,還可以運行在ARM架構(gòu)下。國內(nèi)主流的國產(chǎn)機型,可以完全適用。換句話說,Jexus可以滿足國產(chǎn)化的要求。

?

下面看看Jexus的下載和安裝:

可以從官網(wǎng)上直接下載。

另外,貼心的宇大,給了一個更簡單的安裝腳本:

curl?https://jexus.org/release/x64/install.sh?|?sh

腳本會自動從官網(wǎng)下載最新的Jexus,并安裝到/usr/jexus。

腳本運行完成后,安裝Jexus就完成了。

?

我們看一下目錄:

$?ls?/usr/jexus?-l -rw-r--r--?1?root?root????1015?Jan??1?03:30?def.py -rwxr-xr-x?1?root?root????2691?Jan??1?03:30?jws -rw-r--r--?1?root?root??????37?Jan??1?03:30?JwsAspd.exe -rwxr-xr-x?1?root?root??334928?Mar?16?09:39?JwsAspd.exe.so -rw-r--r--?1?root?root?????688?Jan?30?01:13?jws.conf -rwxr-xr-x?1?root?root??515848?Mar?16?09:39?jwsHttpd.exe.so -rwxr-xr-x?1?root?root??122560?Mar?16?09:39?jwsLog.exe.so -rwxr-xr-x?1?root?root?4861920?Apr?15?15:14?jwss drwxr-xr-x?2?root?root????4096?Apr?15?15:15?log -rw-r--r--?1?root?root????3810?Jan??1?03:30?mime.conf -rwxr-xr-x?1?root?root??????79?Jan??1?03:30?mozroots -rw-r--r--?1?root?root?????211?Apr?27?08:45?os.def -rw-r--r--?1?root?root???21273?Jan??1?03:30?readme.cn.txt drwxr-xr-x?5?root?root????4096?Jan??1?03:30?runtime drwxr-xr-x?2?root?root????4096?Feb?18?15:13?siteconf -rw-r--r--?1?root?root?????753?Jan??1?03:30?state4.conf -rw-r--r--?1?root?root????????3?Apr?27?08:45?state.pid

這個目錄中:

jws 主控程序,網(wǎng)站的啟動/停止/重啟全靠它

Jws.config 針對操作系統(tǒng)級別的主控程序設置

mime.conf 預定義的mime。絕大多數(shù)mime已經(jīng)定義好了。如果需要,可以直接追加

siteconf 網(wǎng)站應用定義目錄。所有的網(wǎng)站應用設置都在這個目錄里

log 網(wǎng)站日志目錄。各個網(wǎng)站運行的日志都在這里

?

我們試著啟動一下Jexus:

./jws?start

一個簡單的命令,服務就啟動了。

檢查網(wǎng)站是否正常運行,可以在瀏覽器中打開http://your_server_ip/info或http://your_domain/info,如果看到下面的網(wǎng)站,就說明網(wǎng)站正常啟動了。

發(fā)布應用時,每個應用有一個獨立的配置文件。

$?cat?/usr/jexus/siteconf/default ###################### #?Web?Site:?Default? ########################################port=80 root=/?/var/www/default hosts=*????#OR?your.com,*.your.com#?User=www-data#?AspNet.Workers=2??#?Set?the?number?of?asp.net?worker?processes.?Defauit?is?1.#?addr=0.0.0.0 #?CheckQuery=false NoLog=true#?AppHost={cmd=dotnet?/usr/local/x/app.dll;?root=/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?TLSv1.2 #?ssl.ciphers=ECDHE-RSA-AES256-GCM-SHA384:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE?#?DenyFrom=192.168.0.233,?192.168.1.*,?192.168.2.0/24 #?AllowFrom=192.168.*.* #?DenyDirs=~/cgi,?~/upfiles #?indexes=myindex.aspx#?Deny?asp?... rewrite=^/.+?\.(asp|cgi|pl|sh|bash|dll)(\?.*|)$??/.deny->$1 rewrite=.*/editor/.+?????????????????????????????/.deny->editor #?reproxy=/bbs/?http://192.168.1.112/bbs/ #?host.Redirect=abc.com?www.abc.com??301 #?ResponseHandler.Add=myKey:myValue ResponseHandler.Add=X-Frame-Options:SAMEORIGIN#?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

一般應用時,我們需要關(guān)注以下幾個參數(shù):

  • port,應用的端口號

  • root,應用的根目錄。應用可以放在任何目錄,在設置里指向這個目錄就成

  • hosts,應用綁定的域名

  • AppHost,專用于Dotnet core的指向,指向到core應用的SelfHost

  • reproxy,用于負載均衡模式時,指向?qū)嶋H服務器

  • UseHttps,決定是否使用https。如果設為true,則下面ssl.certificate和ssl.certificatekey用于設置證書

  • 詳細的配置說明,可以參見目錄中readme.cn.txt。

    ?

    看看,WebServer也因為Jexus而變得超級簡單。

    ?

    至此,我們完成了整個架構(gòu)中主體部分的安裝和有效性測試。

    ?

    四、擴展和延伸

    在一個小應用的情況下, 可以直接按上文的內(nèi)容,做一個簡單的架構(gòu)。

    ?

    而在應用擴展時,可以依次擴展WebServer和數(shù)據(jù)庫,以達到應用容量的延伸。

  • 擴展Jexus

  • 依托Jexus的反代特性,把Jexus擴展到多個服務器,并用一個Jexus做負載均衡,就完成了WebServer的擴展。

  • 擴展數(shù)據(jù)庫

  • 依托MongoDB的特性,把MongoDB擴展到集群,即可支持海量的數(shù)據(jù)和毫秒級的響應。

    ?

    通過這樣簡單的擴展配置,這個架構(gòu)很容易就可以擴展到可以支持千萬級用戶的應用。

    ?

    下一篇文章,我會用一個項目來實踐這個架構(gòu)。敬請期待

    (未完待續(xù))

    您的贊賞是我最大的鼓勵

    I will be more solid with your donations

    總結(jié)

    以上是生活随笔為你收集整理的15分钟从零开始搭建支持10w+用户的生产环境(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。