萬萬想不到 20萬的MPV超越40萬房車享受

在車上對坐面談彷彿是挺不錯的事情,邁特威最大的亮點是內部空間和座椅的靈活擴展性,二排座椅支持旋轉移動,但反着坐的人就不舒服了,中間圓形桌板使得第三排乘客出入比較困難,座椅設計過高不符合國人身材,長時間乘坐舒適性難保障,不實用。

前言

現在除了SUV車型最火爆外,商務精英人士最喜愛的莫過於MpV車型了,商用出差接客戶有面子,空間夠大夠舒適,一舉兩得,眾所周知,在歐洲市場,福特途睿歐和大眾邁特威已經是對老冤家了,而進口后的邁特威價格幾乎是國產後途睿歐的兩倍,誰更有性價比呢?

最近隨着自己業績越來越好,小李思索着想買一台車,畢竟自己是業務員,沒個車接客戶談商務合作什麼的不方便,從小就特別喜歡MpV的小李,就特別想買一台MpV,於是把目標鎖定在兩台車上:福特途睿歐、大眾邁特威。

方方正正的車身造型不禁讓人聯想到以前的全順、依維柯那種輕客,就有點與時代脫軌的節奏,而且給人一種低檔的感覺,還有令人有些審美疲勞的家族式前臉沒什麼改進,不過挺耐看的。

再看途睿歐則給人一種很豪邁的視覺感受,車身線條很硬朗但沒有硬邦邦的感覺,車側突出的輪眉凸顯其壯碩的的身材,柔中帶剛更顯威武,前臉有着萌萌噠的造型,很和藹可親,是一輛宜商宜旅的車子。

老爸家裡那台老捷達確實實用,兢兢業業服務了好多年,這點在大眾邁特威內飾上一樣,採用套娃的設計,大量的鋼琴烤漆面板和方方正正的設計元素和外觀比較搭配,營造了比較高檔的感覺,但是沒什麼新意,開着居然和轎車是一樣的Feel。

途睿歐的內飾造型層次感更豐富,看起來並不會出現所謂的視覺疲勞感,操作區域幾乎圍繞駕駛者四周,實用人性化為上,上深下淺的配色很有商務風格,給人溫馨舒適的乘坐體驗,低矮的左右側窗線設計使得兩側視野很好,很容易上手。

我們來看一下配置上的差異,邁特威會佔有優勢,但相差不大的配置但一想到相差20多萬的價格,突然感覺有點藍瘦,像天窗和導航系統這麼基本的配置,邁特威要去到54.98萬的車型才有配備。

而途睿歐20.39萬車型就有了,前後排自動空調是全系標配,為了乘員上下更方便,還配備了側踏板,還有貼心的後排220v電源支持手提筆記本等設備的使用,能及時收發郵件和處理文件。

旋轉、跳躍我閉着眼。。。在車上對坐面談彷彿是挺不錯的事情,邁特威最大的亮點是內部空間和座椅的靈活擴展性,二排座椅支持旋轉移動,但反着坐的人就不舒服了,中間圓形桌板使得第三排乘客出入比較困難,座椅設計過高不符合國人身材,長時間乘坐舒適性難保障,不實用。

4976*2032*1990mm的車身尺寸使得途睿歐比邁特威大了一圈,採用2+2+3的座椅布局,中間留有通道,橫縱向空間更大,以往一般MpV比較雞肋的第三排空間,途睿歐表現卻很出色,完全是三個獨立座椅,不會再出現肩膀碰肩膀的尷尬情況,儲物空間隨手可及,驚人的後備箱空間即使在常規狀態下也達到1360L,實用性上更出色。

話說高端車型為什麼開起來那麼舒服,像奔馳奧迪等高端車型上配備都配備了空氣懸挂,可以調節懸挂的軟硬,能適應不同路況,而途睿歐採用了同級罕見的RAS后空氣懸挂,隨時隨地享受最舒適的駕乘體驗;人機工程學上做得很轎車化,座椅可以調得比較低接近SUV的坐姿,比較垂直的方向盤角度,掄方向比搓麻將還要順滑。

麵包車開起來是什麼感覺的,是不是重心太高,有點發飄,邁特威採用了後半拖曳臂獨立式懸挂,雖然有DCC模式可調,但感覺跨度不太明顯,軟硬有點兩極分化,始終把握不好合適的度,不過舒適性方面還是有一貫大眾車的風格。

賬面數據上EA888發動機+7擋雙離合的組合表現更為出色,用在高爾夫Gti是挺猛的,但拖動邁特威這2.5噸重的車子起步似乎有點吃力,必要時刻還得靠S擋來解決動力不足的問題,還有考慮到用車成本上,油耗和保養費用也是不佔優勢的。

而途睿歐搭載的是福特2.0T EcoBoost發動機,與路虎、捷豹等高端車型使用的是同宗同源的,燃油經濟性更佳,動力也相差無幾,還一個令人讚歎的就是它整體的NVH水平,不管是發動機還是底盤,都達到了乘用車的優良水平,綜合性能更強,搭配5擋手動變速箱,可靠性更佳。

再糾正下小李子的想法,進口車所交的各種關稅、消費稅、增值稅後導致邁特威的價格都去到40多萬了,而途睿歐國產後的價格就完全不用這些花費,性價比更高更接地氣,所以勸你還是移情別戀吧。

兩朋友笑日:你小子現在知道的挺多啊。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※回頭車貨運收費標準

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

微服務海量日誌監控平台

前面幾章蜻蜓點水的介紹了elasticsearch、apm相關的內容。本片主要介紹怎麼使用ELK Stack幫助我們打造一個支撐起日產TB級的日誌監控系統

背景

在企業級的微服務環境中,跑着成百上千個服務都算是比較小的規模了。在生產環境上,日誌扮演着很重要的角色,排查異常需要日誌,性能優化需要日誌,業務排查需要業務等等。然而在生產上跑着成百上千個服務,每個服務都只會簡單的本地化存儲,當需要日誌協助排查問題時,很難找到日誌所在的節點。也很難挖掘業務日誌的數據價值。那麼將日誌統一輸出到一個地方集中管理,然後將日誌處理化,把結果輸出成運維、研發可用的數據是解決日誌管理、協助運維的可行方案,也是企業迫切解決日誌的需求。

我們的解決方案

通過上面的需求我們推出了日誌監控系統。

  • 日誌統一收集、過濾清洗。
  • 生成可視化界面、監控,告警,日誌搜索。

功能流程概覽

  • 在每個服務節點上埋點,實時採集相關日誌。
  • 統一日誌收集服務、過濾、清洗日誌後生成可視化界面、告警功能。

我們的架構

  1. 日誌文件採集端我們使用filebeat,運維通過我們的後台管理界面化配置,每個機器對應一個filebeat,每個filebeat日誌對應的topic可以是一對一、多對一,根據日常的日誌量配置不同的策略。除了採集業務服務日誌外,我們還收集了mysql的慢查詢日誌和錯誤日誌,還有別的第三方服務日誌,如:nginx等。最後結合我們的自動化發布平台,自動發布並啟動每一個filebeat進程。
  2. 調用棧、鏈路、進程監控指標我們使用的代理方式:Elastic APM,這樣對於業務側的程序無需任何改動。對於已經在運營中的業務系統來說,為了加入監控而需要改動代碼,那是不可取的,也是無法接受的。Elastic APM可以幫我們收集http接口的調用鏈路、內部方法調用棧、使用的sql、進程的cpu、內存使用指標等。可能有人會有疑問,用了Elastic APM,其它日誌基本都可以不用採集了。還要用filebeat幹嘛?是的,Elastic APM採集的信息確實能幫我們定位80%以上的問題,但是它不是所有的語言都支持的比如:C。其二、它無法幫你採集你想要的非error日誌和所謂的關鍵日誌,比如:某個接口調用時出了錯,你想看出錯時間點的前後日誌;還有打印業務相關方便做分析的日誌。其三、自定義的業務異常,該異常屬於非系統異常,屬於業務範疇,APM會把這類異常當成系統異常上報,如果你後面對系統異常做告警,那這些異常將會幹擾告警的準確度,你也不能去過濾業務異常,因為自定義的業務異常種類也不少。
  3. 同時我們對agent進行了二開。採集更詳細的gc、堆棧、內存、線程信息。
  4. 服務器採集我們採用普羅米修斯。
  5. 由於我們是saas服務化,服務N多,很多的服務日誌做不到統一規範化,這也跟歷史遺留問題有關,一個與業務系統無關的系統去間接或直接地去對接已有的業務系統,為了適配自己而讓其更改代碼,那是推不動的。牛逼的設計是讓自己去兼容別人,把對方當成攻擊自己的對象。很多日誌是沒有意義的,比如:開發過程中為了方便排查跟蹤問題,在if else里打印只是有標誌性的日誌,代表是走了if代碼塊還是else代碼塊。甚至有些服務還打印着debug級別的日誌。在成本、資源的有限條件下,所有所有的日誌是不現實的,即使資源允許,一年下來將是一比很大的開銷。所以我們採用了過濾、清洗、動態調整日誌優先級採集等方案。首先把日誌全量採集到kafka集群中,設定一個很短的有效期。我們目前設置的是一個小時,一個小時的數據量,我們的資源暫時還能接受。
  6. Log Streams是我們的日誌過濾、清洗的流處理服務。為什麼還要ETL過濾器呢?因為我們的日誌服務資源有限,但不對啊,原來的日誌分散在各各服務的本地存儲介質上也是需要資源的哈。現在我們也只是彙集而已哈,收集上來后,原來在各服務上的資源就可以釋放掉日誌佔用的部分資源了呀。沒錯,這樣算確實是把原來在各服務上的資源化分到了日誌服務資源上來而已,並沒有增加資源。不過這隻是理論上的,在線上的服務,資源擴大容易,收縮就沒那麼容易了,實施起來極其困難。所以短時間內是不可能在各服務上使用的日誌資源化分到日誌服務上來的。這樣的話,日誌服務的資源就是當前所有服務日誌使用資源的量。隨存儲的時間越長,資源消耗越大。如果解決一個非業務或非解決不可的問題,在短時間內需要投入的成本大於解決當前問題所帶來收益的話,我想,在資金有限的情況下,沒有哪個領導、公司願意採納的方案。所以從成本上考慮,我們在Log Streams服務引入了過濾器,過濾沒有價值的日誌數據,從而減少了日誌服務使用的資源成本。技術我們採用Kafka Streams作為ETL流處理。通過界面化配置實現動態過濾清洗的規則:
  • 界面化配置日誌採集。默認error級別的日誌全量採集
  • 以錯誤時間點為中心,在流處理中開窗,輻射上下可配的N時間點採集非error級別日誌,默認只採info級別
  • 每個服務可配100個關鍵日誌,默認關鍵日誌全量採集
  • 在慢sql的基礎上,按業務分類配置不同的耗時再次過濾
  • 按業務需求實時統計業務sql,比如:高峰期階段,統計一小時內同類業務sql的查詢頻率。可為dba提供優化數據庫的依據,如按查詢的sql創建索引
  • 高峰時段按業務類型的權重指標、日誌等級指標、每個服務在一個時段內日誌最大限制量指標、時間段指標等動態清洗過濾日誌 
  • 根據不同的時間段動態收縮時間窗口
  • 日誌索引生成規則:按服務生成的日誌文件規則生成對應的index,比如:某個服務日誌分為:debug、info、error、xx_keyword,那麼生成的索引也是debug、info、error、xx_keyword加日期作後綴。這樣做的目的是為研發以原習慣性地去使用日誌

    7. 可視化界面我們主要使用grafana,它支持的眾多數據源中,其中就有普羅米修斯和elasticsearch,與普羅米修斯可謂是無縫對接。而kibana我們主要用於apm的可視分析

日誌可視化

【版權聲明】

本文版權歸作者(深圳伊人網網絡有限公司)和博客園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文鏈接,否則保留追究法律責任的權利。如您有任何商業合作或者授權方面的協商,請給我留言:siqing0822@163.com

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

如何監控 Linux 服務器狀態?

Linux 服務器我們天天打交道,特別是 Linux 工程師更是如此。為了保證服務器的安全與性能,我們經常需要監控服務器的一些狀態,以保證工作能順利開展。

本文介紹的幾個命令,不僅僅適用於服務器監控,也適用於我們日常情況下的開發。

1. watch

watch 命令我們的使用頻率很高,它的基本作用是,按照指定頻率重複執行某一條指令。使用這個命令,我們可以重複調用一些命令來達到監控服務器的作用。

默認情況下,watch 命令的執行周期是 2 秒,但我們可以使用 -n 選項來指定運行頻率,比如我們想要每隔 5 秒執行 date 命令,可以這麼執行:

$ watch -n 5 date

一台服務器肯定有多人在用,特別是本部門的小夥伴。對於這些小夥伴有沒渾水摸魚,我們可以使用一些命令來監控他們。

我們可以每隔 10 秒執行 who 命令,來看看都有誰在使用服務器。

$ watch -n 10 who
Every 10.0s: who                             butterfly: Tue Jan 23 16:02:03 2019

shs      :0           2019-01-23 09:45 (:0)
dory     pts/0        2019-01-23 15:50 (192.168.0.5)
alvin     pts/1        2019-01-23 16:01 (192.168.0.15)
shark    pts/3        2019-01-23 11:11 (192.168.0.27)

如果發現系統運行很慢,我們可以調用 uptime 命令來查看系統平均負載情況。

$ watch uptime
Every 2.0s: uptime                           butterfly: Tue Jan 23 16:25:48 2019

 16:25:48 up 22 days,  4:38,  3 users,  load average: 1.15, 0.89, 1.02

一些關鍵的進程肯定不能掛,否則可能會影響到業務開展,所以我們可以重複統計服務器中的所有進程數量。

$ watch -n 5 'ps -ef | wc -l'
Every 5.0s: ps -ef | wc -l                   butterfly: Tue Jan 23 16:11:54 2019

245

想動態知道服務器內存使用情況,可以重複執行 free 命令。

$ watch -n 5 free -m
Every 5.0s: free -m                          butterfly: Tue Jan 23 16:34:09 2019

              total        used        free      shared  buff/cache   available
Mem:           5959         776        3276          12        1906        4878
Swap:          2047           0        2047

當然不僅僅是這些,我們還可以重複調用很多命令來對服務器一些關鍵參數進行監控,

2. top

使用 top 命令我們可以知道系統的很多關鍵參數,而且是動態更新的。默認情況下,top 監控的是系統的整體狀態,如果我們只想知道某個人的使用情況,可以使用 -u 選項來指定這個人。

$ top -u alvin
top - 16:14:33 up 2 days,  4:27,  3 users,  load average: 0.00, 0.01, 0.02
Tasks: 199 total,   1 running, 198 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   5959.4 total,   3277.3 free,    776.4 used,   1905.8 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4878.4 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
23026 alvin      20   0   46340   7820   6504 S   0.0   0.1   0:00.05 systemd
23033 alvin      20   0  149660   3140     72 S   0.0   0.1   0:00.00 (sd-pam)
23125 alvin      20   0   63396   5100   4092 S   0.0   0.1   0:00.00 sshd
23128 alvin      20   0   16836   5636   4284 S   0.0   0.1   0:00.03 zsh

在這個結果里,你不僅僅可以看到 alvin 這個用戶運行的所有的進程數,也可以看到每個進程所消耗的系統資源(CPU,內存),同時依然可以看到整個系統的關鍵參數。

3. ac

如果你想知道每個用戶登錄服務器所使用的時間,你可以使用 ac 命令。這個命令需要你安裝 acct 包(Debian)或 psacct 包(RHEL,Centos)。

如果我們想知道所有用戶登陸服務器所使用的時間之和,我們可以直接運行 ac 命令,無需任何參數。

$ ac
        total     1261.72

如果我們想知道各個用戶所使用時間,可以加上 -p 選項。

$ ac -p
        shark                                5.24
        alvin                                5.52
        shs                               1251.00
        total     1261.76

我們還可以通過加上 -d 選項來查看具體每一天用戶使用服務器時間之和。

$ ac -d | tail -10
Jan 11  total        0.05
Jan 12  total        1.36
Jan 13  total       16.39
Jan 15  total       55.33
Jan 16  total       38.02
Jan 17  total       28.51
Jan 19  total       48.66
Jan 20  total        1.37
Jan 22  total       23.48
Today   total        9.83

小結

我們可以使用很多命令來監控系統的運行狀態,本文主要介紹了三個:watch 命令可以讓你重複執行某一條命令來監控一些參數的變化,top 命令可以查看某個用戶運行的進程數以及消耗的資源,而 ac 命令則可以查看每個用戶使用服務器時間。你經常使用哪個命令呢?歡迎留言討論!

公眾號:良許Linux

有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準

ASP.NET Core Blazor WebAssembly實現一個簡單的TODO List

基於blazor實現的一個簡單的TODO List

最近看到一些大佬都開始關注blazor,我也想學習一下。做了一個小的demo,todolist,僅是一個小示例,參考此vue項目的實現http://www.jq22.com/code1339

先看實現的效果圖

不BB,直接可以去看

源碼與預覽地址

  • 示例地址 http://baimocore.cn:8081/
  • 源碼地址 BlazorAppTodoList

源碼介紹

我們這裏刪除了默認的一些源碼。只保留最簡單的結構,在Pages/Index.razor中。

@code代碼結構中寫如下內容

  1. 創建一個類,裡面包含 id,label,isdone三個屬性值。
public class TodoItem
{
    public TodoItem () { }
    public TodoItem (int id, string label, bool isDone)
    {
        Id = id;
        Label = label;
        IsDone = isDone;
    }
    public int Id { get; set; }
    public string Label { get; set; }
    public bool IsDone { get; set; }
}
  1. 我們可以通過override重寫初始化,並給Todos設置一些數據。
private IList<TodoItem> Todos;
private int id = 0;
protected override void OnInitialized ()
{
    Todos = new List<TodoItem> ()
    {
        new TodoItem (++id, "Learn Blazor", false),
        new TodoItem (++id, "Code a todo list", false),
        new TodoItem (++id, "Learn something else", false)
    };
}

展示還有多少未完成的任務

<h1>
        Todo List(@Todos.Count(todo => !todo.IsDone))
        <span>Get things done, one item at a time.</span>
</h1>

當任務沒有時,我們展示默認效果,提示用戶無任務

<p class="emptylist" style="display: @(Todos.Count()>0?"none":"");">Your todo list is empty.</p>

新增一個任務

<form name="newform">
    <label for="newitem">Add to the todo list</label>
    <input type="text" name="newitem" id="newitem" @bind-value="Label">
    <button type="button" @onclick="AddItem">Add item</button>
</form>

這裏我們用了一個Label變量,一個onclick事件。

private string Label;

private void AddItem()
{
    if (!string.IsNullOrWhiteSpace(Label))
    {
        Todos.Add (new TodoItem { Id = ++id, Label = Label });
        Label = string.Empty;
    }
    this.SortByStatus();
}

this.SortByStatus
因為我們這裏還實現一個功能,就是當勾選(當任務完成時,我們將他移到最下面)

<div class="togglebutton-wrapper@(IsActive==true?" togglebutton-checked":"")">
    <label for="todosort">
        <span class="togglebutton-Label">Move done items at the end?</span>
        <span class="tooglebutton-box"></span>
    </label>
    <input type="checkbox" name="todosort" id="todosort" value="@IsActive" @onchange="ActiveChanged">
</div>

一個IsActive的變量,用於指示當前checkbox的樣式,是否開啟已完成的任務移動到最下面。當勾選時,改變IsActive的值。並調用排序的功能。

private bool IsActive = false;
private void ActiveChanged()
{
    this.IsActive = !this.IsActive;
    this.SortByStatus();
}
private void SortByStatus()
{
    if (this.IsActive)
    {
        Todos = Todos.OrderBy(r => r.IsDone).ThenByDescending(r => r.Id).ToList();
    }
    else
    {
        Todos = Todos.OrderByDescending(r => r.Id).ToList();
    }
}

對於列表的展示我們使用如下ul li @for實現

<ul>
    @foreach (var item in Todos)
    {
        <li stagger="5000" class="@(item.IsDone?"done":"")">
            <span class="label">@item.Label</span>
            <div class="actions">
                <button class="btn-picto" type="button"
                        @onclick="@((e)=> {MarkAsDoneOrUndone(item);})"
                        title="@(item.IsDone ? "Undone" :"Done")"
                        aria-label="@(item.IsDone ? "Undone" :"Done")">
                    <i aria-hidden="true" class="material-icons">@(item.IsDone ? "check_box" : "check_box_outline_blank")</i>
                </button>
                <button class="btn-picto" type="button"
                        @onclick="@((e)=> { DeleteItemFromList(item); })"
                        aria-Label="Delete" title="Delete">
                    <i aria-hidden="true" class="material-icons">delete</i>
                </button>
            </div>
        </li>
    }
</ul>

循環Todos,然後,根據item.IsDone,改變li的樣式,從而實現一个中劃線的功能,二個按鈕的功能,一個是勾選任務表示此任務已完成,另一個是刪除此任務。同理,我們仍然通過IsDone來標識完成任務的圖標,標題等。

  • 任務設置已完成/設置為未完成: @onclick調用方法MarkAsDoneOrUndone,並將當前的一行記錄item傳給方法,需要使用一個匿名函數調用@code中的方法,將isDone取相反的值,並重新排序。
private void MarkAsDoneOrUndone(TodoItem item)
{
    item.IsDone = !item.IsDone;
    this.SortByStatus();
}
  • 刪除一個任務,同理,使用匿名函數,DeleteItemFromList直接通過IList的方法Remove刪除一個對象,並排序。
private void DeleteItemFromList(TodoItem item)
{
    Todos.Remove(item);
    this.SortByStatus();
}

當然,我們可以 在ul,外包裹一層,根據Count判斷有沒有任務,從而显示這個列表。

<div style="display: @(Todos.Count()>0?"":"none");"><ul>xxx</ul></div>

其他的樣式與圖標,請看最上面的源碼wwwroot/css目錄獲取。

deploy(部署)

  • 有興趣的可以看官網 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/blazor/?view=aspnetcore-3.1&tabs=visual-studio

在項目根目錄執行如下命令

dotnet publish -c Release

我們就能得到一個發布包,他的位置在 (BlazorAppTodoList\bin\Release\netstandard2.1\publish) ,我們把他複製到服務器上,這裏我放到/var/www/todolilst目錄中。

它相當於一個靜態文件,你可以將他部署到任何一個web服務器上。

這裏我們把他放到nginx中,並在目錄/etc/nginx/conf.d/ 新建一個文件 todolist.conf,然後放入如下內容。

 server {
        listen 8081;

        location / {
            root /var/www/todolist/wwwroot;
            try_files $uri $uri/ /index.html =404;
        }
}

記得在etc/nginx/nginx.conf中配置gzip壓縮。

gzip  on;
gzip_min_length 5k; #gzip壓縮最小文件大小,超出進行壓縮(自行調節)
gzip_buffers 4 16k; #buffer 不用修改
gzip_comp_level 8; #壓縮級別:1-10,数字越大壓縮的越好,時間也越長
gzip_types text/plain application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/octet-stream; #  壓縮文件類型 
gzip_vary on; # 和http頭有關係,加個vary頭,給代理服務器用的,有的瀏覽器支持壓縮,有的不支持,所以避免浪費不支持的也壓縮,所以根據客戶端的HTTP頭來判斷,是否需要壓縮

我遇到dll,wasm,後綴的文件壓縮無效。因為gzip_types ,沒有配置他們的Content-Type。我們在瀏覽器中找到響應頭Content-Type: application/octet-stream,然後在上文中的nginx配置文件中,gzip_types加上application/octet-stream,

最後執行

nginx -t
nginx -s reload

打開網站看效果

http://baimocore.cn:8081

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

疫情缺工夠慘了 百年大旱讓波蘭農民雪上加霜

摘錄自2020年04月26日中央通訊社波蘭報導

武漢肺炎疫情導致來自烏克蘭的季節工人數大減,波蘭農民已經苦不堪言;現在,百年未見的大旱災也跑來湊熱鬧,農民境況更如雪上加霜。

農業部長阿德諾斯基(Jan Krzysztof Ardanowski)警告,旱災恐傷及糧食產量,雖然沒有短缺風險,價格卻可能水漲船高。總統杜達(Andrzej Duda)也憂心忡忡,呼籲民眾節約用水。波蘭旱災並非新鮮事,但現在情況卻是日趨惡化。波蘭最高審計局(Supreme Audit Office)去年就已警告,每年每名波蘭人只能用1600立方公尺的水。

旱災的嚴重程度,就連首都華沙也明顯可見:波蘭最大且最長的河川維斯杜拉河(Vistula)現在水位已降到60公分,通常隱藏在水下2公尺的沙洲都已冒出頭來。「地面很乾,要向下挖個15公分的洞,才找得到水分。」

除了人手不夠,布科夫斯卡-拉薩斯卡還有一個大問題:假新聞。「我們聽人家說,要用溫水洗草莓才能洗掉病毒。草莓禁不起熱水,我們得把它們醃製成蜜餞。」但這種說法根本是謠言,波蘭衛生部告訴法新社,歐洲食品安全局(European Food Safety Authority)上月就說,「無證據顯示食物是傳染來源或散播途徑」。

永續發展
土地利用
國際新聞
波蘭
烏克蘭
旱災
農業缺工
武漢肺炎
疫情下的食衣住行
糧食

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

動物園因疫情撐不下去……就怕全餓死 浣熊恐率先安樂死

摘錄自2020年04月25日自由時報報導

英國一間小型動物園因為無法負擔龐大的支出,負責人說,最壞的打算就是將動物「安樂死」,而浣熊將會首當其衝。

綜合外媒報導,51歲的安迪.科威爾(Andy Cowell)在英國肯特郡聖瑪利胡(St Mary Hoo, Kent)經營一間小型動物園,受疫情影響,園區遊客銳減,他花盡畢生積蓄,還是無法負擔一日2000英鎊(約新台幣7萬4000元)的龐大開銷,最壞的打算是將動物安樂死,避免牠們活活餓死。由於浣熊被英國政府列為入侵物種,因此會最先成為安樂死對象。

生活環境
國際新聞
英國
武漢肺炎
動物園
疫情下的食衣住行

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!

「疫」外減碳!全球碳排放今年估降6% 二戰以來最大降幅

摘錄自2020年4月22日自由時報報導

世界氣象組織(World Meteorological Organization, WMO)負責人今(22)日表示,預計今年武漢肺炎(COVID-19)疫情將讓二氧化碳排放量減少6%,是自第二次世界大戰以來最大降幅。

然而,聯合國機構表示,下降幅度仍不足以阻止氣候變化,並敦促各國政府將氣候行動納入復甦計畫。WMO警告,過去經濟復甦帶來的排放量增長甚至比危機爆發前更高。WMO週三(22日)還發布一份全球氣候報告,內容指出2015-2019年是有記錄以來最溫暖的5年。

生活環境
全球變遷
溫室氣體
氣候變遷
國際新聞
二氧化碳排放
疫情看氣候與能源
武漢肺炎

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※推薦台中搬家公司優質服務,可到府估價

文在寅防疫受肯定 南韓國會大選民主黨大勝 2050碳中和實現有望

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

網頁設計最專業,超強功能平台可客製化

荷蘭養殖場水貂感染病毒 當局稱傳人可能性極小

摘錄自2020年04月26日自由時報報導

荷蘭農業部今(26日)宣布,境內有水貂感染武漢肺炎病毒,目前發現病例的兩座水貂養殖場已被隔離,此為該國首次傳出動物感染。

綜合外媒報導,荷蘭衛生部表示,由於養殖場內有水貂出現呼吸困難的跡象,檢測後確定染上病毒,據信是經由身上帶有病毒的員工傳染,不過,病毒在養殖場進一步傳播給其他人或動物的可能性極小。

衛生部表示,目前相關人員正在進行研究,呼籲人們不要經過養殖場的400公尺範圍內。

生活環境
國際新聞
荷蘭
武漢肺炎
養殖場

動物與大環境變遷

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計最專業,超強功能平台可客製化

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※回頭車貨運收費標準

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家公司費用怎麼算?

南極地區首次發現青蛙化石碎片

摘錄自2020年4月27日俄羅斯衛星通訊社報導

根據發表在《Scientific Reports》期刊的研究報告,科研人員在南極半島北端的西莫爾島發現了數塊青蛙的頭骨和部分髖骨化石碎片,這種古老的生物是南美地區現代頭盔蛙科的近親。

這一的發現讓科學家對南極大陸的古代氣候有了新的認識。這些化石碎片距今約4000萬年,頭骨形狀可以看出這隻青蛙屬於頭盔蛙科。頭盔蛙科現生種生活在南美安第斯山脈中部的溫暖潮濕山谷中。這表明,至少4000萬年前,南極洲地區也是類似的氣候。

這一發現改變了科學家對南極大陸氣候變化的認識。大多數科學家認為,大約4000萬年前,南極洲與澳洲大陸分離後迅速被冰層覆蓋。但是一些證據表明,在南極大陸與南半球其他現代大陸完全分離前,南極洲冰蓋就已經開始形成。

生態保育
物種保育
生物多樣性
國際新聞
南極
古生物學
化石
青蛙
兩棲類
南極

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※回頭車貨運收費標準

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※推薦評價好的iphone維修中心

※教你寫出一流的銷售文案?

台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!