由於自己的之前學習 nginx 只會簡單使用,然後每次配置 nginx 都要找文件去了解怎麼配置,有點麻煩,所以這裡記錄下一些常用的nginx 配置和配置的例子,到時候直接 copy 修改即可
nginx 的主要功能為 靜態檔案的伺服器、負載均衡、重寫或重定向url、正向**、反向** 等。
這裡使用的 nginx 版本為 1.16.0
配置檔案的主要結構為:
# 服務配置1,我們一般只要修改這裡的資訊即可
server
} # 這個 server 是服務配置2
server
} # includ 用來引入 nginx 在其他目錄的配置檔案,一般正式的公司專案會這樣使用,並以每個網域名稱或 server 塊分成每個配置檔案。
include cust_conf/mainconf; # 加多乙個確定的檔案,這樣找不到檔案的時候會報錯,以免配置錯目錄
includ /data/host/config/*.conf;
}window 啟動
cmd命令進入安裝檔案;
1、啟動:c:\server\nginx-1.0.2>start nginx
或c:\server\nginx-1.0.2>nginx.exe
注:建議使用第一種,第二種會使你的cmd視窗一直處於執行中,不能進行其他命令操作。
參考:nginx 命令列引數
不像許多其他軟體系統,nginx 僅有幾個命令列引數,完全通過配置檔案來配置
-c
為 nginx 指定乙個配置檔案,來代替預設的。
-t
不執行,而僅僅測試配置檔案。nginx 將檢查配置檔案的語法的正確性,並嘗試開啟配置檔案中所引用到的檔案。用法:nginx -t
, 這個命令也可以檢視nginx檔案的所在位置。
-v
顯示 nginx 的版本。
-v
顯示 nginx 的版本,編譯器版本和配置引數。
通過執行 nginx 的可執行檔案可以直接啟動 nginx。只要 nginx 啟動了,則可以通過執行 nginx 加-s
引數來控制 nginx 的一些行為。用法如下:
nginx -s $
$ 可以為以下四個值:
前端檔案或者服務的部署,一般會使用到這個功能,通過 nginx 伺服器來分發(sering out)檔案,然後使用者從網路上能夠通過 ip 或 網域名稱直接訪問到
1. 實現訪問 stats-server.kanlon.com 實現將/data/fr
下的目錄作為靜態檔案訪問
server
location /
}
如果訪問出現錯誤,可以看一下 logs/error.log 的錯誤日誌,這裡會列印出實際訪問的檔案路徑。還有測試 nginx 的時候一定要注意是否啟動了多個 nginx 否則可能更改了配置會以為自己設定錯誤不生效的(沉重教訓)
通過 nginx 可以實現將請求自動**都自己的指定的服務網域名稱上,減少單台服務請求量和實現服務的高可用。
nginx 上預設是通過 ngx_http_upstream_module 模組實現
1. 配置訪問 load-balancing-test.kanlon.com:83 則負載均衡到指定三個網域名稱上
其中 要求load-balancing-test-3.kanlon.com:86
作為備份服務,load-balancing-test.kanlon.com-1:84 和load-balancing-test-2.kanlon.com:85 的請求數分布比例為 1:2
# 配置健康檢查,當為502,503,504,404的時候表示服務不可用,60秒內有兩個這樣的失敗請求則負載到另乙個服務上
}
其中的包含了一些 nginx 的健康檢查的指令
max_fails=number
設定nginx與伺服器通訊的嘗試失敗的次數。在fail_timeout引數定義的時間段內,如果失敗的次數達到此值,nginx就認為伺服器不可用。在下乙個fail_timeout時間段,伺服器不會再被嘗試。 失敗的嘗試次數預設是1。設為0就會停止統計嘗試次數,認為伺服器是一直可用的。 你可以通過指令proxy_next_upstream、fastcgi_next_upstream和 memcached_next_upstream來配置什麼是失敗的嘗試。 預設配置時,http_404狀態不被認為是失敗的嘗試。
fail_timeout=time
設定伺服器被認為不可用的時間段以及統計失敗嘗試次數的時間段。在這段時間中,伺服器失敗次數達到指定的嘗試次數,伺服器就被認為不可用。
nginx 可以將匹配的 url 重定向到另外的 url 去,包含改變位址
指定位址重定向
將rewrite-local.kanlon.com/rewrite/same/site/**
重定向到rewrite-local.kanlon.com/rewrite2/same/site/**
和 將rewrite-local.kanlon.com/rewrite/other/site
重定向到rewrite-other.kanlon.com/rewrite2/same/site
server
# **到另外的網域名稱,如果要 重定向,; 前面加上 permanent (永久重定向 301 即可),預設為 302 臨時重定向
location /rewrite/other/site
location /rewrite2/same/site
location /
}server
location /
}
正向**,就是好像我們平常使用的 vpn 那樣,我們的訪問的網域名稱不會變,只不過通過 nginx 來幫我們傳送請求和接收請求,並返回自己客戶端。nginx 預設支援 http 協議的正向**,如果要支援 https 需要安裝元件。
nginx 配置如下:
server
}
然後,再在自己電腦上配置**伺服器和埠,即可完成正向**。
反向**,則直接訪問 nginx 的網域名稱來替代訪問自己原來的要訪問資源的網域名稱,然後得到原資源的網域名稱返回的結果
server
}
有時候我們想讓訪問靜態html檔案的時候,需要隱藏掉字尾.html
,可以像下面這樣配置
server
location /
root /data/nginx_static;}}
這樣的話,假設專案根目錄下有login.html
檔案,原只能通過訪問127.0.0.1/login.html
訪問到,設定之後,通過127.0.0.1/login
或者127.0.0.1/login.html
都能訪問到
nginx 官方文件
nginx 中文文件
nginx官網翻譯
windows下nginx的啟動、停止、重啟等命令
nginx正向**與反向**
nginx 常見正則匹配符號表示
nginx實戰系列之功能篇----後端節點健康檢查
nginx 視覺化介面配置
讓nginx上的靜態網頁在訪問的時候沒有html字尾
Nginx的安裝和啟動
1.c語言的環境 yum y install gcc c 2.安裝 pcre 環境pcre 的壓縮包 wget 2.解壓壓縮包 tar zxvf pcre 8.37.tar.gz 如指定則 tar zxvf pcre 8.37.tar.gz c usr local 3.跳轉到 pcre 的目錄下 找...
Nginx安裝和啟動
首先需要安裝乙個叫 epel release 的軟體包,這個軟體包會自動配置yum的軟體倉庫。當然你也可以不安裝這個包,自己配置軟體倉庫也是一樣的。yum install epel release yepel源 是什麼?為什麼安裝?epel extra packages for enterprise...
Nginx安裝啟動 與配置 https
安裝必備外掛程式 yum y install gcc automake autoconf libtool make yum install gcc gcc c yum方式安裝openssl pcre zlib make make installnginx安全證書生成 openssl genrsa o...