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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx【学习笔记】

發布時間:2023/12/20 Nginx 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx【学习笔记】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Nginx

1. nginx可以做什么?

  • 可針對靜態資源高速高并發訪問及緩存。

  • 可使用反向代理加速,并且可進行數據緩存。

  • 具有簡單負載均衡、節點健康檢查和容錯功能。

  • 支持遠程FastCGI服務的緩存加速。

  • 支持FastCGI、Uwsgi、SCGI、Memcached Servers的加速和緩存。

  • 支持SSL、TLS、SNI。

  • 具有模塊化的架構:過濾器包括gzip壓縮、ranges支持、chunked響應、XSLT、SSI及圖像縮放等功能。在SSI過濾器中,一個包含多個SSI的頁面,如果經由FastCGI或反向代理處理,可被并行處理。

  • ###1.1 作為WEB服務的話支持

  • 支持基于名字、端口及IP的多虛擬主機站點。

  • 支持Keep-alive和pipelined連接。

  • 可進行簡單、方便、靈活的配置和管理。

  • 支持修改Nginx配置,并且在代碼上線時,可平滑重啟,不中斷業務訪問。

  • 可自定義訪問日志格式,臨時緩沖寫日志操作,快速日志輪詢及通過rsyslog處理日志。

  • 可利用信號控制Nginx進程。

  • 支持3xx-5xx HTTP狀態碼重定向。

  • 支持rewrite模塊,支持URI重寫及正則表達式匹配。

  • 支持基于客戶端IP地址和HTTP基本認證的訪問控制。

  • 支持PUT、DELETE、MKCOL、COPY及MOVE等較特殊的HTTP請求方法。

  • 支持FLV流和MP4流技術產品應用。

  • 支持HTTP響應速率限制。

  • 支持同一IP地址的并發連接或請求數限制。

  • 支持郵件服務代理。

  • ###1.2 應用場景

    (1)作為Web服務軟件

    (2)反向代理或負載均衡服務

    (3)前端業務數據緩存服務

    ? ? ? location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires ? ? 30d;} ?location ~ .*\.(js|css)?${expires ? ? 12h;}

    ###1.3 優點

  • 支持高并發:能支持幾萬并發連接(特別是靜態小文件業務環境)。

  • 資源消耗少:在3萬并發連接下,開啟10個Nginx線程消耗的內存不到200MB。

  • 可以做HTTP反向代理及加速緩存,即負載均衡功能,內置對RS節點服務器健康檢查功能,這相當于專業的Haproxy軟件或LVS的功能。

  • 具備Squid等專業緩存軟件等的緩存功能。

  • 支持異步網絡I/O事件模型epoll(Linux 2.6+)。

  • ?

    2. apache的特點

  • Apache 2.2版本非常穩定強大,據官方說,Apache 2.4版本性能更強。

  • Prefork模式取消了進程創建開銷,性能很高。

  • 處理動態業務數據時,因關聯到后端的引擎和數據庫,瓶頸不在Apache上。

  • 高并發時消耗系統資源相對多一些。

  • 基于傳統的select模型,高并發能力有限。select 模型 也就是 同步 epoll 異步

  • 支持擴展庫,可通過DSO、apxs方法編譯安裝額外的插件功能,不需要重新編譯Apache。

  • 功能多,更穩定,更安全,插件也多。

  • 市場份額在逐年遞減。

  • 2.1. 網絡模式

    同步網絡模式 select

    每個請求的狀態始終在維護著 (消耗好多資源)

    異步網絡模式 epoll 處理服務器端的并發 請求人數越多 服務器肯定吃緊 系統資源也會緊張 I/O效率也會很慢

    不定期將你的請求 篩選出來 直接告訴你 不用挨個select

    epoll

    每個請求 我不再維護你的狀態 如果有請求 就找我 找到了 給你服務 找不到拉倒

    ?

    3. lighttpd的特點

  • 基于異步網絡I/O模型,性能、并發都與Nginx相近。

  • 擴展庫是SO模式,比Nginx靈活。

  • 目前國內的使用率比較低,安全性沒有Apache和Nginx好。

  • 通過插件(mod_secdownload)可實現文件URL地址加密(優點)。

  • 社區不活躍,市場份額較低。

  • 圖說三個服務器的性能對比

    ?

    4. 為什么nginx處理并發能力更強?

    ?

    ?

    5. 如何選擇web服務器?

  • 靜態業務:若是高并發場景,盡量采用Nginx或Lighttpd,二者首選Nginx。

  • 動態業務:理論上采用Nginx和Apache均可,建議選擇Nginx,為了避免相同業務的服務軟件多樣化,增加額外維護成本。動態業務可以由Nginx兼做前端代理,再根據頁面元素的類型或目錄,轉發到后端相應的服務器進行處理。

  • 既有靜態業務又有動態業務:采用Nginx。

  • 此外,如果并發不是很大,又對Apache很熟悉,采用Apache也是可以的,Apache 2.4版本也很強大,并發連接數也有所增加。總的來說,在滿足需求的前提下,首先選擇自己最擅長的軟件,若發現了更好的軟件,可在掌握新軟件之后逐步替換。雖然動態和靜態業務都傾向于選擇Nginx,但是大前提是自己要熟練掌握Nginx。切記,在工作中不要盲目選擇軟件,這可能最終會導致自己無法控制局面,從而給企業帶來災難性的損失。

    ?

    ?

    6. Ubuntu下nginx安裝和虛擬站點配置方式

    如果在Ubuntu16.04下使用apt安裝nginx,安裝完畢后其工作目錄設置如下:

    • nginx站點配置目錄:/etc/nginx/

      • 其中主配置為nginx.conf

      • sites-available子目錄存放站點配置文件,其中有一個default文件為虛擬站點的配置模板,自己的虛擬站點可以以此為模板進行配置。

      • sites-enabled子目錄存放一個對應站點配置文件的軟連接。必須在sites-availabel生成站點的配置文件,然后到sites-enabled添加對應的軟連接。

    • 默認站點根目錄 : /var/www/html/

    • 日志文件目錄:/var/log/nginx/

      • error.log記錄站點的錯誤,如果要查看詳細的錯誤信息,可以打開該文件查看

    以www.blog.com站點為例說明多個虛擬站點配置的方法:

    #安裝nginx sudo service apache2 stop #停止apache sudo apt-get install nginx-full -y ? #虛擬站點配置 #1.首先切換目錄到sites-available目錄 cd /etc/nginx/sites-available ? #2.復制虛擬站點配置模板,生成自己虛擬站點的配置文件 sudo cp default www.blog.com.conf ? ? #3 編輯模板 #---------------------以下為配置內容------------------- server {listen 80; #監聽端口 ?#站點的根目錄root /var/www/html/www.blog.com; ?# Add index.php to the list if you are using PHP#網站默認首頁打開順序index index.html index.htm; #站點名稱,可以有多個名稱,中間用空格隔開server_name www.blog.com blog.com; } ? #------------------到此結束------------------------------ #這個模板比較簡單,如果有復雜的要求,請以此為基礎進行改進 ? #4 保存退出 :wq ? #5 切換到sites-enabled目錄下,創建軟連接 cd ../sites-enabled sudo ln -s /etc/nginx/sites-available/www.blog.com.con ? www.blog.com.conf ? #6 重啟nginx服務 sudo service nginx restart (start/stop) 或者 sudo /etc/init.d/nginx restart ? #7 切換到站點根目錄(根據你自己的設定進行),我假定站點根目錄是/var/www/html cd /var/www/html sudo chmod -R 755 www.blog.com #編輯index.html ? <html> <head> <meta charset='utf-8'> <title>瘋狂程序員的博客</title> </head> <body> ? <h1>瘋狂的程序員</h1> ? </body> </html> #保存退出 :wq ? #8 切換到windows系統下,編輯C:\Windows\System32\drivers\etc\hosts文件,在末尾增加: #ip為你虛擬機的ip地址 192.168.48.3 www.blog.com ? ? #9 在windows系統下瀏覽器里輸入 : www.blog.com 看看是否是你的頁面

    7.centos下nginx安裝和配置

    • 添加源:

      sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    • 安裝Nginx

      sudo yum install -y nginx
    • 啟動Nginx并設置開機自動運行

      sudo systemctl start nginx.service sudo systemctl enable nginx.service
    • 測試,在瀏覽器中輸入localhost,看缺省網站

    ##8. 負載均衡

    當一臺服務器的單位時間內的訪問量越大時,服務器壓力就越大,大到超過自身承受能力時,服務器就會崩潰。為了避免服務器崩潰,讓用戶有更好的體驗,我們通過負載均衡的方式來分擔服務器壓力。

    角色ip作用
    lvs負載均衡10.11.59.220請求分擔
    web0110.11.59.155輪詢的web服務器
    web0210.11.59.154輪詢的web服務器
    • 這三臺機子要求都安裝了nginx環境,web01和web02結構應該是一樣的

    8.1 負載均衡服務的配置

    ? #連接池upstream www_server_pools { #www_server_pools自定義的連接池名稱server 10.11.59.154; ? #連接的服務器,可以ip或者是域名server 10.11.59.155;} ? ?server {listen ? ? ? 80;server_name www.caoliu.com; ?location / {# root ? /data/www;# index index.php index.html index.htm;proxy_pass http://www_server_pools;#http://連接池名稱proxy_set_header ? Host $host; ? #把主機的header頭發給輪詢的服務器proxy_set_header ? X-Forward-For $Remote_addr; #獲取真實的ip地址} ?}

    8.2 upstream模塊

    是nginx支持負載均衡的模塊,nginx_http_upstream_moudle,它所支持的代理方式:

    • proxy_pass

    • fast_cgi

    • memcache_pass

    8.3 常用的輪詢算法

    • rr輪詢算法:靜態調度算法,按照請求的時間順序逐一分配到不同的服務器,如果服務器down掉,就不再向其轉發請求

    • wrr 權重算法,靜態調度算法

      ? upstream www_server_pools {server 10.11.59.154 weight=1; ?server 10.11.59.155 weight=3;#這個服務器得到的轉發是上面的3倍}
    • ip_hash 根據客戶端ip哈希的結果確定訪問那個服務器。

      upstream www_server_pools {server 10.11.59.154;server 10.11.59.155;ip_hash;}
    • 第三方的算法

      • fair 按照服務器忙閑,優先將請求給工作量小的服務器

      • url_hash 按照url哈希的結果訪問不同服務器

    總結

    以上是生活随笔為你收集整理的Nginx【学习笔记】的全部內容,希望文章能夠幫你解決所遇到的問題。

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