英文:netguru,翻譯:開源中國我們會告訴你 nginx 是如何工作的,其背後的概念有哪些,以及如何優化它以提公升應用程式的效能。還會告訴你如何安裝,如何啟動、執行。www.oschina.net/translate/nginx-tutorial-basics-concepts
這個教程包括三節:
我們的目標是建立一系列教程,讓你可以輕鬆找到特定主題的正確配置,如 gzip、ssl 等,或者直接瀏覽一下那些配置。為了獲得最佳的學習體驗,我們建議你在自己的機器上安裝 nginx,並親手實戰一下。
nginx 最初是作為乙個 web 伺服器建立的,用於解決 c10k 的問題。作為乙個 web 伺服器,它可以以驚人的速度為您的資料服務。但 nginx 不僅僅是乙個 web 伺服器,你還可以將其用作反向**,與較慢的上游伺服器(如:unicorn 或 puma)輕鬆整合。你可以適當地分配流量(負載均衡器)、流**、動態調整影象大小、快取內容等等。
基本的 nginx 體系結構由 master 程序和其 worker 程序組成。master 讀取配置檔案,並維護 worker 程序,而 worker 則會對請求進行實際處理。
要啟動 nginx,只需輸入:
[sudo] nginx當你的 nginx 例項執行時,你可以通過傳送相應的訊號來管理它:
[sudo] nginx -s signal可用的訊號:
nginx 的配置檔案,預設的位置包括:
配置檔案的由下面的部分構成:
指令– 可選項,包含名稱和引數,以分號結尾
gzip on;上下文– 分塊,你可以宣告指令 – 類似於程式語言中的作用域
worker_processes 2; # 全域性上下文指令http 上下文描述。
root, location, 和 try_files 指令
root 指令
root 指令設定請求的根目錄,允許 nginx 將傳入請求對映到檔案系統。
server {listen 80;
server_name netguru.co;
root /var/www/netguru.co;
根據給定的請求,指定 nginx 伺服器允許的內容
netguru.co:80/index.html # returns /var/www/netguru.co/index.htmlnetguru.co:80/foo/index.html # returns /var/www/netguru.co/foo/index.html
location 指令
location指令根據請求的 uri 來設定配置。
location [modifier] path
location /foo/ {如果沒有指定修飾符,則路徑被視為字首,其後可以跟隨任何東西。
以上例子將匹配
/foo/fooo
/foo123
/foo/bar/index.html
此外,在給定的上下文中可以使用多個 location 指令。
server {listen 80;
server_name netguru.co;
root /var/www/netguru.co;
location / {
return 200 "root";
location /foo/ {
return 200 "foo";
netguru.co:80 / # => "root"netguru.co:80 /foo # => "foo"
netguru.co:80 /foo123 # => "foo"
netguru.co:80 /bar # => "root"
nginx 也提供了一些修飾符,可用於連線 location。這些修飾符將影響 location 模組使用的地方,因為每個修飾符都分配了優先順序。
= - exact match^~ - preferential match
~ && ~* - regex match
no modifier - prefix match
nginx 會先檢查精確匹配。如果找不到,我們會找優先順序最高的。如果這個匹配依然失敗,正規表示式匹配將按照出現的順序進行測試。至少,最後乙個字首匹配將被使用。
location /match {return 200 'prefix match: matches everything that starting with /match';
location ~* /match[0-9] {
return 200 'case insensitive regex match';
location ~ /match[0-9] {
return 200 'case sensitive regex match';
location ^~ /match0 {
return 200 'preferential match';
location = /match {
return 200 'exact match';
/match/ # => 'exact match'/match0 # => 'preferential match'
/match1 # => 'case insensitive regex match'
/match1 # => 'case sensitive regex match'
/match-abc # => 'prefix match: matches everything that starting with /match'
try_files 指令
嘗試不同的路徑,找到乙個路徑就返回。
try_files $uri index.html =404;所以對於 /foo.html 請求,它將嘗試按以下順序返回檔案:
$uri ( /foo.html )
index.html
如果什麼都沒找到則返回 404
有趣的是,如果我們在伺服器上下文中定義 try_files,然後定義匹配的所有請求的 location —— try_files 將不會執行。
這是因為在伺服器上下文中定義的 try_files 是它的 pseudo-location,這是最不可能的位置。因此,定義 location/ 將比 pseudo-location 更具體。
server {try_files $uri /index.html =404;
location / {
因此,你應該避免在 server 上下文**現 try_files:
server {location / {
try_files $uri /index.html =404;
Nginx 教程 1 基本概念
效能管理 提公升速度的訣竅。我們將會講解 gzip 快取 緩衝區以及超時設定。ssl 設定 講解用 https 來提供內容的設定步驟。quit 優雅關閉 等待 worker 執行緒完成處理 reload 過載配置檔案 reopen 重新開啟日誌檔案 usr local etc nginx nginx...
nginx基本概念介紹
1 nginx主要為優化效能,是一種反向 服 負載均衡務器。有報告表明能支援高達 50,000 個併發連線數。反向 伺服器 nginx 最常的用途是提供反向 服務,那麼什麼反向 呢?正向 相信很多大陸同胞都在這片神奇的土地上用過了,原理大致如下圖 伺服器作為客戶端這邊的中介接受請求,隱藏掉真實的客戶...
基本概念 C 基本概念
由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...