安裝之前需要的環境
安裝gcc:
使用yum命令安裝:yum -y install gcc gcc-c++ kernel-devel //安裝gcc、c++編譯器以及核心檔案
安裝pcre
解壓:tar -zxvf …
編譯:./configure,make,make install
安裝zlib
直接安裝:利用作業系統自帶的工具:yum,apt-get
編譯:nginx二進位制檔案會把模組直接編譯進來,官方模板並不是都預設開啟,新增第三方模組必須使用編譯模式安裝
解壓:tar -zxvf …
進入原始碼目錄:
auto:輔助configure指令碼執行
change:版本特性
conf:示例檔案,nginx安裝好以後,方便運維配置,會把示例檔案拷貝到安裝目錄
configure:指令碼,生成中間檔案,執行編譯前必備動作
contrib:提供vim工具(vim開啟配置檔案顏色沒有變化,nginx語法沒有配置到vim中),使用vim工具:複製contrib中所有vim檔案到自己的目錄中:cp -r contrib/vim/* ~/.vim,沒有檔案先建立(mkdir ~/.vim)
html:兩個標準html檔案
man:nginx幫助檔案:man ./nginx.8
src:源**
檢視nginx支援的引數:./configure --help | more
第一類引數:nginx執行中尋找的路徑:一般指定prefix目錄即可,其它目錄會在prefix目錄下建相應的資料夾
第二類引數:nginx使用或不使用的模組:字首通常是with(預設不會編譯)或without(預設編譯)
第三類引數:特殊引數,使用gcc編譯需要什麼優化引數,列印debug日誌,新增第三方模組等
編譯:./configure --prefix=/home/nginx(nginx安裝目錄)
configure執行完成後,會生成objs資料夾,裡面是生成的中間檔案:
ngx_modules.c檔案:決定接下來編譯哪些模組會被編譯進nginx
執行make編譯:make
編譯完成後,會生成大量的中間檔案及最終執行的nginx二進位制檔案,也在objs目錄下
如果nginx版本公升級,不能執行make install,還需要從這裡把目標檔案nginx拷貝到nginx安裝目錄中
c語言編譯時生成的所有的中間檔案都會放到src目錄下
如果使用動態模組,動態模組編譯會生成so動態檔案,也會放在objs目錄下
使用make install,首次安裝時可以使用這個命令
安裝完成後,去prefix指定的安裝目錄
最主要的nginx二進位制檔案在sbin目錄下
決定nginx功能的配置檔案在conf目錄下,conf目錄下的檔案其實是源**中conf目錄下檔案拷貝了乙份過來
access.log和error.log在logs目錄下
配置檔案由指令與指令塊構成
每條指令以分號(;)結尾,指令與引數間以空格符號分割
指令塊以大括號({})將多條指令組織在一起
include語句允許組合多個配置檔案以提公升可維護性
使用#符號新增注釋,提高可讀性
使用$符號使用變數
部分指令的引數支援正規表示式:location
時間,空間
http配置的指令塊
http:http模組去解析
upstream:上游服務,與tomcat等企業內網其他服務互動
server:對應乙個或一組網域名稱
location:url表示式
格式:nginx -s reload
幫助:-? -h
使用指定的配置檔案:-c,人為的指定其它的配置檔案,-c 配置檔案路徑
指定配置指令:-g,config目錄裡面有很多條指令,我們可以在命令列中覆蓋
指定執行目錄:-p,替換config中定義好的目錄,log
傳送訊號:-s,操作執行中的程序
stop:立刻停止服務
quit:優雅的停止服務
reload:過載配置檔案(優雅的停止服務方式)
reopen:重新開始記錄日誌檔案
測試配置檔案是否有語法錯誤:-t -t
列印nginx的版本資訊、編譯資訊等:-v(版本資訊), -v(編譯時所有的引數)
預設情況下,編譯出來的nginx會尋找執行configure時指定的位置的配置檔案
過載配置檔案:修改配置檔案,./nginx -s reload
熱部署:
備份原來的資料夾(sbin裡面的nginx資料夾):cp nginx nginx.old
更換二進位制檔案,將編譯好的最新版本nginx的二進位制檔案複製過來,替換正在執行的程序的nginx二進位制檔案:cp -r nginx 執行的nginx -f
給正在執行的nignx master程序傳送訊號(告訴它開始熱部署):kill -usr2 master程序號
告訴老master程序優雅的關閉work程序:kill -winch 老master程序號
老master程序不會自動退出,可以使用reload命令重新把老的work程序拉起來,允許版本回退
切割日誌檔案:
拷貝乙份日誌:mv access.log bak.log
執行命令:…/sbin/nginx -s reopen,重新生成access.log(向nginx主程序傳送usr1訊號,kill -usr1 程序號)
將靜態資源(dlib)拷貝到nginx安裝目錄(nginx/dlib)
配置nginx.conf
展示檔案及資料夾目錄結構資訊:autoindex on;#如果請求出現403 forbidden,可能需要設定user
}# 文字檔案可以做gzip壓縮,傳輸的位元組數會大幅度極少。開啟gzip,off置為on
gzip on;
# 小於多少位元組不進行壓縮
gzip_min_length 1;
# 壓縮級別
gzip_comp_level 2;
# 針對某些型別的檔案進行gzip壓縮
# $remote_user
# $time_local:當時時間
# $request
# $status:200,301(重定向),403(拒絕訪問)
# $gzip_ratio:當時使用的壓縮比率
# access日誌格式,命名為main
log_format main '$remote_addr'
...}...
公網頻寬有限,併發使用者訪問形成爭搶關係。有時候需要限制訪問大檔案速度,以期望分離出足夠的頻寬給必要的小檔案:set $limit_rate 1k;
記錄access日誌:log_format,access_log
外部訪問不到可能需要先關閉防火牆:sudo systemctl stop firewalld #臨時關閉
上游服務要處理很複雜的業務邏輯,講求開發效率,效能並不怎麼樣,使用nginx做為反向**,可以由一台nginx,把請求按照負載均衡演算法**給多台上游伺服器工作,這樣就實現了水平擴充套件,在使用者無感知的情況下新增更多的上游伺服器來提公升處理效能,當上游伺服器出現問題的時候,nginx可以自動的把請求從有問題出現災難的伺服器轉交給正常的伺服器。
上游伺服器通常對公網不提供訪問(nginx伺服器做為上游伺服器,修改nginx.conf)
server
搭建nginx反向**
所有請求**到上游服務:proxy_pass# 上游伺服器,這一批伺服器命名為local
upstream local
server }
...# 配置快取伺服器,設定快取檔案目錄,檔案的命名方式,檔案關鍵字(key)放到共享記憶體中,
proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
配置快取伺服器
nginx安裝 Centos7安裝nginx
在安裝nginx前首先要確認系統中安裝了gcc pcre devel zlib devel openssl devel。yum y install gcc pcre devel zlib devel openssl openssl devel 解壓 tar zxvf nginx 1.9.9.tar....
Linux學習 CentOS 7 安裝Nginx
pcre 作用是讓 nginx 支援 rewrite 功能。root bogon src cd usr local src root bogon src wget 2 解壓安裝包 root bogon src tar zxvf pcre 8.35.tar.gz3 進入安裝包目錄 root bogon...
centos7安裝Nginx 使用nginx記錄
1 安裝各種依賴 gcc安裝,nginx原始碼編譯需要 yum install gcc c pcre pcre devel 安裝,nginx 的 http 模組使用 pcre 來解析正規表示式 yum install y pcre pcre devel zlib安裝,nginx 使用zlib對htt...