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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

angularjs sill 创建项目_开源项目——博客项目MyBlogs.Core,基于.NET 5

發布時間:2025/3/8 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 angularjs sill 创建项目_开源项目——博客项目MyBlogs.Core,基于.NET 5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

個人博客站項目源碼,高性能低占用的博客系統,這也許是我個人目前寫過的性能最高的web項目了 。目前日均處理請求數80-120w次,同時在線活躍用戶數30-100人,數據量累計已達到100多萬條,數據庫+Redis+網站主程序同時運行在一臺2核2GB的機器上,瀏覽器頁面請求秒級響應,CPU平均使用率控制在20%左右。

演示站點

首頁_懶得勤快的博客_互聯網分享精神?masuit.com

不依賴于具體的數據庫,已測試SQL Server和mysql正常,其他數據庫還請自測;也不依賴于數據庫的開發模式,code First、DB First均可自由切換。部分功能在Linux下可能無法使用,須待測,比如:硬件監測。

github

https://github.com/ldqk/Masuit.MyBlogs?github.com

老項目已經移動到分支net461

開發環境

操作系統:Windows 10 2009
IDE:Visual Studio 2019 v16.8
數據庫:MySQL 8.0
Redis:redis-server-windows 3.2

當前運行環境

操作系統:Windows Server 2008 R2
數據庫:MySQL 8.0
Redis:redis-server-windows 3.2
運行時:.NET 5
服務器配置:2核+4GB+1M

硬件要求

最低配置推薦配置
CPU1核2核
內存1GB2GB
帶寬1Mbps2Mbps
數據庫SQL Server 2008/MySQL 5SQL Server 2012/MySQL 8

主要功能

服務器性能監控

可直接在線實時監控服務器的運行狀態,包括CPU、網絡帶寬、磁盤使用率、內存占用等情況,可記錄最近一天的服務器健康狀態,通過websocket進行數據的推送,僅支持Windows,且需要Windows安裝最新的更新。

文章管理

包含文章審核、文章合并、文章列表的增刪查改、分類管理、專題管理;

服務器性能監控

可直接在線實時監控服務器的運行狀態,包括CPU、網絡帶寬、磁盤使用率、內存占用等情況,可記錄最近一天的服務器健康狀態,通過websocket進行數據的推送,僅支持Windows,且需要Windows安裝最新的更新。

文章管理

包含文章審核、文章合并、文章列表的增刪查改、分類管理、專題管理;

文章審核:當用戶在前臺頁進行投稿后,會進入審核狀態,審核通過后,才會在前臺頁的文章列表中展示出來。

文章合并:當用戶在前臺頁進行了文章的編輯后,會創建出文章的合并請求,當后臺管理進行相應的合并操作后,前臺用戶的修改才會正式生效,可以直接合并、編輯并合并和拒絕合并,拒絕時,修改人會收到相應的郵件通知。

文章操作:可對文章進行修改、新增、置頂、臨時刪除(下架)、還原、永久刪除、禁止評論等操作,編輯后的文章會生成歷史版本。支持上傳word文檔自動轉換, 文章支持按地區進行投放,支持5種投放模式。

分類管理:對文章的分類進行增刪查改和文章的移動等操作,與文章的關系:一對多。

專題管理:對文章的專題進行管理,與文章的關系:多對多。

快速分享:首頁快速分享欄目的管理。

評論和留言管理

對前臺用戶提交的留言和評論進行審核,當前臺用戶提交的內容可能包含有敏感詞時,會進入人工審核,審核成功才會在前臺頁中展示。

消息通知

站內消息包含評論、留言、投稿、文章合并等郵件通知。

郵件支持smtp和http模式,http模式的已支持mailgun服務。

公告管理

對網站的公告進行增刪查改管理。

雜項頁管理

一些通用的頁面管理,可自由靈活的創建靜態頁面。

系統設置

包含系統的全局設置、防火墻管理、網站運行日志記錄、友鏈管理、郵件模板的管理。

全局設置:網站的一些基本配置和SEO相關操作等;

防火墻

對網站的所有請求進行全局流量的攔截,讓規則內的請求阻止掉,支持黑名單、白名單、IP地址段(支持IPv4和IPv6)、國家或地區、關鍵詞審查、ASN、運營商等規則;

攔截記錄支持提交到cloudflare等第三方cdn服務商;

防火墻審計可一鍵加黑白名單或提交到上層防火墻服務;

防火墻記錄了詳細的日志,便于查看審計。

菜單管理

菜單支持拖拽配置,樹狀無級菜單,3種子菜單類型。

廣告管理

主動式的廣告投放管理,支持競價排名,支持在banner、邊欄、頁內、列表內的廣告展示,競價或權重的高低決定廣告出現的概率。

贊助管理

對網站打賞進行增刪查改操作,自動掩碼。

搜索統計

當前臺用戶每Session周期內的關鍵詞搜索,不重復的關鍵詞將會被記錄,用于熱詞統計,僅記錄最近一個月內的所有搜索關鍵詞,用于統計當月、7天以及當天的搜索熱詞。

任務管理

hangfire的可視化管理頁面

文件管理

服務器文件的在線管理,支持瀏覽、預覽、壓縮、解壓縮、創建文件夾、上傳、下載、打包下載等文件的基本操作。

站內搜索

站內搜索支持全文檢索,基于自定義詞庫。

友情鏈接

友情鏈接支持自助上鏈,回鏈檢測,自動排名等。

全局功能

網站全局時間將根據訪客所在時區自動進行轉換;

圖片上傳支持自定義水印文字;

圖片上傳支持本地存儲、gitlab倉庫、阿里云oss等;

前臺數據帶緩存;

對于需要前臺展示的用戶數據,將進行脫敏處理后進行展示;

支持文章,分類,評論,單文章的rss訂閱。

項目架構

項目采用單體架構,方便部署和配置,傳統的MVC模式,http://ASP.NET Core MVC+EF Core的簡單架構。
Controller→Service→Repository→DbContext

現在只有這么一個項目了,額外的引用了Masuit.Tools.Core這個項目作為工具庫,因為.NET Core無處不在的依賴注入,使得數據庫和ORM之間沒有了強依賴的關系,這使得更換數據庫的成本相對較低,所以所有的代碼都全部放在了一起。

文件夾定義:

App_Data:存放網站的一些常規數據,以文本的形式存在,這類數據不需要頻繁更新的。

┠─cert文件夾:存放https證書

┠─ban.txt:敏感詞庫

┠─CustomKeywords.txt:搜索分詞詞庫

┠─denyip.txt:IP地址黑名單

┠─DenyIPRange.txt:IP地址段黑名單

┠─GeoLite2-City.mmdb:MaxMind地址庫

┠─ip2region.db:ip2region地址庫

┠─mod.txt:審查詞庫

┠─whitelist.txt:IP地址白名單

Common:之前老項目的Common項目;

Configs:項目的一些配置對象

Controllers:控制器

Extensions:一些擴展類或一些項目的擴展功能,比如hangfire、ueditor、中間件、攔截器等;

Hubs:SignalR推送服務類;

Infrastructure:數據訪問基礎設施,包含Repository和Services,相當于老項目的DAL和BLL;

Migrations:數據庫CodeFirst模式的遷移文件;

Models:老項目的Models項目,存放一些實體類或DTO;

Views:razor視圖

wwwroot:項目的所有靜態資源;

核心功能點技術實現

后端技術棧:

依賴注入容器:.NET Core自帶的+Autofac,autofac主要負責批量注入和屬性注入;
實體映射框架:automapper 9.0;
緩存框架:CacheManager統一管理網站的熱數據,如Session、內存緩存,EFSecondLevelCache.Core負責管理EF Core的二級緩存;
定時任務:hangfire統一管理定時任務,包含友鏈回鏈檢查、文章定時發布、訪客統計、搜索熱詞統計、Lucene庫刷新等任務;
Websocket:SignalR進行流推送實現服務器硬件健康狀態的實時監控;
硬件檢測:Masuit.Tools封裝的硬件檢測功能;
全文檢索:Masuit.LuceneEFCore.SearchEngine基于http://Lucene.Net 4.8實現的全文檢索中間件;
中文分詞:結巴分詞結合本地詞庫實現中文分詞;
斷點下載:Masuit.Tools封裝的斷點續傳功能;
Redis:CSRedis負責Redis的讀寫操作;
文件壓縮:Masuit.Tools封裝的zip文件壓縮功能;
Html字符串操作:htmldiff.net-core實現文章版本的內容對比,HtmlAgilityPack實現html字符串的“DOM”操作,主要是用于提取img標簽,HtmlSanitizer實現表單的html代碼的仿XSS處理;
圖床:支持多個圖床的上傳:gitee、gitlab、阿里云OSS、sm.ms圖床、人民網圖床;
攔截器:授權攔截器、請求攔截器負責網站全局流量的攔截和清洗、防火墻攔截器負責攔截網站自帶防火墻規則的請求流量、異常攔截器、url重定向重寫攔截器,主要用于將http的請求重定向到https;
請求IP來源檢查:IP2Region+本地數據庫實現請求IP的來源檢查;
RSS:WilderMinds.RssSyndication實現網站的RSS源;
EF擴展功能:zzzproject相關nuget包
Word文檔轉換:OpenXml實現瀏覽器端上傳Word文檔轉換為html字符串。
在線文件管理:angular-filemanager+文件管理代碼實現服務器文件的在線管理

前端技術棧

前臺頁面:

基于bootstrap3布局
ueditor+layedit富文本編輯器
notie提示欄+sweetyalert彈窗+layui組件
angularjs

后臺管理頁:

angularjs單一頁面應用程序
material布局風格
highchart+echart圖表組件
ng-table表格插件
material風格angular-filemanager文件管理器

性能和安全相關

hangfire實現分布式任務調度;
Z.EntityFramework.Plus實現數據訪問層的高性能數據庫批量操作;

http://Lucene.NET實現高性能站內檢索;

通過url的敏感詞檢查過濾惡意流量;
限制客戶端的請求頻次;
表單的AntiForgeryToken防止惡意提交;

ip2region+MaxMind地址庫實現請求來源審查;

用戶信息采用端到端RSA非對稱加密進行數據傳輸;

項目部署

編譯:

編譯需要將Masuit.Tools項目和Masuit.LuceneEFCore.SearchEngine項目也一起clone下來,和本項目平級目錄存放,才能正常編譯,否則,將Masuit.Tools項目和Masuit.LuceneEFCore.SearchEngine項目移除,通過nuget安裝也是可以的。

配置文件:

主要需要配置的是https證書、數據庫連接字符、redis、BaiduAK以及圖床配置;

同時,BaiduAK參與了數據庫的加密,如果你沒有BaiduAK,自行到百度地圖開放平臺申請,免費的。

如果你使用了CDN,需要配置TrueClientIPHeader選項為真實IP請求轉發頭,如cloudflare的叫CF-Connecting-IP。

如果Redis不在本機,需要在配置文件中的Redis節下配置,固定為Redis,值的格式:127.0.0.1:6379,allowadmin=true,若未正確配置,將按默認值“127.0.0.1:6379,allowadmin=true,abortConnect=false”。

IIS:部署時必須將應用程序池的標識設置為LocalSystem,否則無法監控服務器硬件,同時需要安裝.NET Core Hosting運行時環境,IIS程序池改為無托管代碼。

獨立運行:配置好環境和配置文件后,可直接通過dotnet Masuit.MyBlogs.Core.dll --port 80 --sslport 443命令運行。

docker:自行爬文。

運行參數:

網站默認會以5000和5001端口運行,如果需要指定端口,需要在appsettings.json中進行配置。

后臺管理:

初始用戶名:masuit

初始密碼:123abc@#$

總結

以上是生活随笔為你收集整理的angularjs sill 创建项目_开源项目——博客项目MyBlogs.Core,基于.NET 5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。