centos7編譯安裝nginx

2021-09-28 21:41:35 字數 4223 閱讀 3684

安裝之前需要的環境

安裝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

#如果請求出現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'

...}...

展示檔案及資料夾目錄結構資訊:autoindex on;

公網頻寬有限,併發使用者訪問形成爭搶關係。有時候需要限制訪問大檔案速度,以期望分離出足夠的頻寬給必要的小檔案:set $limit_rate 1k;

記錄access日誌:log_format,access_log

外部訪問不到可能需要先關閉防火牆:sudo systemctl stop firewalld #臨時關閉

上游服務要處理很複雜的業務邏輯,講求開發效率,效能並不怎麼樣,使用nginx做為反向**,可以由一台nginx,把請求按照負載均衡演算法**給多台上游伺服器工作,這樣就實現了水平擴充套件,在使用者無感知的情況下新增更多的上游伺服器來提公升處理效能,當上游伺服器出現問題的時候,nginx可以自動的把請求從有問題出現災難的伺服器轉交給正常的伺服器。

上游伺服器通常對公網不提供訪問(nginx伺服器做為上游伺服器,修改nginx.conf)

server
搭建nginx反向**

# 上游伺服器,這一批伺服器命名為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;

所有請求**到上游服務:proxy_pass

配置快取伺服器

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...