web開發總結

2021-09-27 01:39:58 字數 4271 閱讀 9535

docker三個基本概念:

image:檔案系統,提供容器執行所需要的程式,庫,資源,配置,以及一些執行所需的配置引數,不包含動態資料

container:容器=映象+讀寫層

repository:存放映象檔案的場所,

mysql

簡答基礎查詢

flask獲取入參 request ,reqparse

tyep = request.args.get(『type』)

date = request.json[「date」]

分頁功能

flask:paginate

反向**和正向**

由上的打比方和演示例子可以體會到正向**與反向**的區別和nginx正向**和反向**的簡單配置。正向**和反向**的區別上邊也說過在於**的物件不一樣,正向**的**物件是客戶端,反向**的**物件是服務端。

最後一句話總結此文就是

**伺服器站在客戶端那邊就是正向**,

**伺服器站在原始伺服器那邊就是反向**,

nginx通過proxy_pass可以設定**服務。

django:url請求---->訪問路由系統(負責分發請求到相應檢視函式)------>檢視函式(處理請求)------>database(資料庫運算元據生成對應頁面返回給使用者)

flask + apache

django+negix

首先客戶端通過瀏覽器訪問伺服器資源;nginx作為對外服務的埠(80),nginx接收到客戶端http請求後會解包分析,如果是靜態檔案就去配置的靜態檔案中查詢資源並返回給客戶端,如果是動態資源,nginx就通過配置檔案將請求傳遞給uwsgi處理,並**給uwsgi,wsgi根據請求呼叫django工程的檔案和函式,處理後django將返回值交給wsgi,wsgi將返回值進行打包,**給uwsgi,uwsgi接收到資料後**給nginx,最終返回給客戶端。

二、apache 和 negix

1、nginx相對於apache的優點: 輕量級,同樣起web 服務,比apache 占用更少的記憶體及資源 ,抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能,高度模組化的設計,編寫模組相對簡單 ,社群活躍,各種高效能模組出品迅速啊

apache 相對於nginx 的優點: rewrite ,比nginx 的rewrite 強大 ,模組超多,基本想到的都可以找到 少bug ,nginx 的bug 相對較多 超穩定。存在就是理由,一般來說,需要效能的web 服務,用nginx 。如果不需要效能只求穩定,那就apache 吧。後者的各種功能模組實現得比前者,例如ssl 的模組就比前者好,可配置項多。這裡要注意一點,epoll(freebsd 上是 kqueue )網路io 模型是nginx 處理效能高的根本理由,但並不是所有的情況下都是epoll 大獲全勝的,如果本身提供靜態服務的就只有寥寥幾個檔案,apache 的select 模型或許比epoll 更高效能。當然,這只是根據網路io 模型的原理作的乙個假設,真正的應用還是需要實測了再說的。

2、作為 web 伺服器:相比 apache,nginx 使用更少的資源,支援更多的併發連線,體現更高的效率,這點使 nginx 尤其受到虛擬主機提供商的歡迎。在高連線併發的情況下,nginx是apache伺服器不錯的替代品: nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平台之一. 能夠支援高達 50,000 個併發連線數的響應, 感謝nginx為我們選擇了 epoll and kqueue 作為開發模型.nginx作為負載均衡伺服器: nginx 既可以在內部直接支援 rails 和 php 程式對外進行服務, 也可以支援作為 http** 伺服器對外進行服務. nginx採用c進行編寫, 不論是系統資源開銷還是cpu使用效率都比 perlbal 要好很多.作為郵件**伺服器: nginx 同時也是乙個非常優秀的郵件**伺服器(最早開發這個產品的目的之一也是作為郵件**伺服器), last.fm 描述了成功並且美妙的使用經驗.nginx 是乙個安裝非常的簡單 , 配置檔案非常簡潔(還能夠支援perl語法), bugs 非常少的伺服器: nginx 啟動特別容易, 並且幾乎可以做到7*24不間斷執行,即使執行數個月也不需要重新啟動. 你還能夠不間斷服務的情況下進行軟體版本的公升級 .

nginx比apache支援更高的併發連線,效率更高,這與前面第一點說的有很大因素,兩者網路io模型不同,另乙個就是nginx是非同步處理請求,而apache是同步處理,每個程序對應乙個請求。關於apache利用每個程序對應乙個請求的的缺點後面還會討論到。

3、nginx 配置簡潔, apache 複雜 ,nginx 靜態處理效能比 apache 高 3倍以上 ,apache 對 php 支援比較簡單,nginx 需要配合其他後端用 ,apache 的元件比 nginx 多 ,現在 nginx 才是 web 伺服器的首選

4、最核心的區別在於apache是同步多程序模型,乙個連線對應乙個程序;nginx是非同步的,多個連線(萬級別)可以對應乙個程序

兩者處理請求的模型不同,直接導致了兩點:a>nginx的抗併發能力強很多. b>nginx對資源需求更少,由於apache程序與請求與一一對應,在請求很大時資源需求是很大的,而且程序建立銷毀代價都很大的。不過現在好像做了改進,prefork可以根據需求預建立一些進行程序,這個有點類似執行緒池的概念。

5、nginx處理靜態檔案好,耗費記憶體少.但無疑apache仍然是目前的主流,有很多豐富的特性.所以還需要搭配著來.當然如果能確定nginx就適合需求,那麼使用nginx會是更經濟的方式.

這個應該與前面說的幾點都有關係:nginx採用epoll io復用模型;非同步處理請求;執行緒與請求是一對多關係。

6、從個人過往的使用情況來看,nginx的負載能力比apache高很多。最新的伺服器也改用nginx了。而且nginx改完配置能-t測試一下配置有沒有問題,apache重啟的時候發現配置出錯了,會很崩潰,改的時候都會非常小心翼翼現在看有好多集群站,前端nginx抗併發,後端apache集群,配合的也不錯。

在這點裡面,我們主要關注這點:nginx+apache結合使用。既然兩者各有優勢,那我們就揚長避短,nginx做前端負責進行抗併發、負載均衡、做靜態檔案快取,後端採用apache處理動態請求。

7、nginx處理動態請求是雞肋,一般動態請求要apache去做,nginx只適合靜態和反向。

nginx處理動態請求是雞肋的原因誰能從原理方面幫解釋一下?是不是由於對php這種語言支援不夠好?對nginx適合做的就是靜態請求和反向**,反向**是什麼東東?簡單的說是客戶端將這nginx伺服器就作為自己的目標機器,將請求發給nginx機器,至於nginx機器是將客戶端需要的資源從**獲得,客戶端不在意(這就有區別與正向**,在正向**中是我不能訪問目標機器,因為我將請求發給你**機器,然後以你的名義去獲得我需要的資源)。

8、從我個人的經驗來看,nginx是很不錯的前端伺服器,負載效能很好,在老奔上開nginx,用webbench模擬10000個靜態檔案請求毫不吃力。apache對php等語言的支援很好,此外apache有強大的支援網路,發展時間相對nginx更久,bug少但是apache有先天不支援多核心處理負載雞肋的缺點,建議使用nginx做前端,後端用apache。大型網站建議用nginx自代的集群功能

這個還是在說nginx+apache結合是乙個不錯的選擇。

9、nginx優於apache的主要兩點:1.nginx本身就是乙個反向**伺服器 2.nginx支援7層負載均衡;其他的當然,nginx可能會比apache支援更高的併發,但是根據netcraft的統計,2023年4月的統計資料,apache依然占有62.71%,而nginx是7.35%,因此總得來說,aapche依然是大部分公司的首先,因為其成熟的技術和開發社群已經也是非常不錯的效能。

apache早出現,當初人們沒選擇,況且小壓力的**也用apache就足夠應付請求壓力,所以兩者市場占有率是有差距的。

10、你對web server的需求決定你的選擇。大部分情況下nginx都優於apache,比如說靜態檔案處理、php-cgi的支援、反向**功能、前端cache、維持連線等等。在apache+php(prefork)模式下,如果php處理慢或者前端壓力很大的情況下,很容易出現apache程序數飆公升,從而拒絕服務的現象。

apache的缺陷,抗壓不行,且由於執行緒數飆公升,資源需求量也是極大

11、可以看一下nginx lua模組:比nginx多的模組,可直接用lua實現apache是最流行的,why?大多數人懶得更新到nginx或者學新事物

12、對於nginx,我喜歡它配置檔案寫的很簡潔,正則配置讓很多事情變得簡單執行效率高,占用資源少,**功能強大,很適合做前端響應伺服器

看了一下,nginx的配置檔案確實更簡潔,也容易理解

13、apache在處理動態有優勢,nginx併發性比較好,cpu記憶體占用低,如果rewrite頻繁,那還是apache吧 rewrite這點不是很了解,不多說

web開發總結

2 overflow hidden 脫離父層,自己定義標準 用於消除浮動 屬性 1 visible 超出部分可見 2 auto 自動新增滾動條 特別用於新增的時候 3 scroll 按照父層的元素的大小顯示,但子元素大小如果超過父元素時 會自動新增滾動條 4 hidden 超出部分隱藏 3 posi...

web專案開發總結

一 專案開發需要注意的幾點 1.系統布局選擇非常重要,選擇合適的ui能夠庫快速的開發 2.系統後台框架,選擇spring springmvc hibernate 3.前端的js框架,jquery jquery ui page 4.新增 修改前端傳送json格式,所有的資料一次性傳送 5.查詢的複雜條...

web開發 web前端開發常用技術總結歸納

技術選型規範規範 vue版本 2.x 前端路由 vue route 非同步請求 axios 全域性狀態管理 vuex css預處理器 sass less h5專案移動端適配規則 使用rem單位 rem px換算規則統一 小程式 使用小程式自帶rpx單位,適配規則參考小程式文件 公用元件庫 ui元件庫...