環境:centos7 nginx1.16.1(源碼安裝)html
1、下載nginx源碼包nginx
地址:http://nginx.org/en/download.htmlc++
Mainline version(主線版本)Stable version(穩定版本)Legacy versions(傳統老版本)正則表達式
下載穩定版:nginx-1.16.1.tar.gz算法
2、安裝相關依賴centos
gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel緩存
gcc,gcc-c++ #c,c++編譯器,用來編譯安裝安全
zlib,zlib-devel #壓縮和解壓的函數庫,網頁文件壓縮要用到它服務器
openssl,openssl-devel #網絡通訊安全協議庫,包含衆多的密碼算法、公鑰基礎設施標準以及SSL協議網絡
3、安裝Nginx
(1).解包
[root@izm5e8nyz28va3a786y465z src]# tar -zxvf nginx-1.16.1.tar.gz
(2).編譯配置(進入到解壓的文件夾)./configure --選項
./configure --prefix=/usr/local/nginx1.16.1 --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tem/nginx/client --http-proxy-temp-path=/var/tem/nginx/proxy --http-fastcgi-temp-path=/var/tem/nginx/fcgi --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-openssl
1. 路徑配置(不設置則爲默認路徑)
--prefix=/usr/local/nginx1.16.1 #nginx的安裝路徑,全部其它路徑都要依賴該選項
--sbin-path=/usr/sbin/nginx #指定nginx二進制文件的路徑,不指定則:/usr/local/nginx/sbin/nginx
--conf-path=/etc/nginx/nginx.conf #nginx配置文件路徑,不指定則:/usr/local/nginx/conf/nginx.conf
--error-log-path=/var/log/nginx/error.log #nginx錯誤日誌路徑,不指定則:/usr/local/nginx/logs/error.log
--pid-path=/var/run/nginx/nginx.pid #pid文件路徑,不指定則:/usr/local/nginx/logs/nginx.pid
--http-log-path=/var/log/nginx/access.log #http訪問日誌路徑
--http-client-body-temp-path=/var/tem/nginx/client #存儲客戶端請求主主體的臨時目錄
--http-proxy-temp-path=/var/tem/nginx/proxy #存儲代理服務器接收數據的臨時文件
--http-fastcgi-temp-path=/var/tem/nginx/fcgi # 設置存儲HTTP fastcgi的臨時文件的路徑
2.模塊配置
--http_v2_module #用於支持http2協議
--with-http_ssl_module #用於支持https協議
--with-http_flv_module #視頻直播模塊
--with-http_gzip_module #是nginx默認編譯的模塊,對網頁文件壓縮
--with-http_gzip_static_module #加載gz靜態緩存模塊,開啓後服務器優先返回gz文件
--with-http_stub_status_module #http服務狀態模塊
3. 其它功能啓用
--with-pcre #開啓正則表達式
--with-openssl #啓用OpenSSL(安全套接字層密碼庫)啓用後可支持https,ssl證書
3.用戶,用戶組配置
--user=www #nginx工做進程的用戶名,默認:user nobody;
nobody 是系統用戶,是一個不能登錄的賬號,一個特殊用途的用戶 ID,uid<500通常都是系統ID
--group=www #nginx工做進程的用戶組,默認:group nogroup
nginx 只有一個主進程和多個工做進程,主進程主要讀取和評估配置文件正確性,以及管理工做進程
工做進程是真正的網絡請求處理的進程
(3)編譯
make
(4)安裝
make install
小技巧:安裝nginx後,怎麼加入其它沒有編譯的模塊(不重裝nginx)
1.查看編譯安裝的配置信息:nginx -V
2.進入以前下載並解壓了的源碼包目錄,從新編譯nginx ,在原來配置參數後加上配置信息
./configure --prefix=xxx ..... 回車,再 make
3. 將新生成的nginx二進制文件替換掉原來的nginx二進制文件(中止nginx)
先備份原來的二進制文件:#防止失敗
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak #防止失敗
替換掉原來的二進制文件:新生成的二進制文件 ./objs/nginx
cp ./objs/nginx /usr/local/nginx/sbin
4. 查看是否成功
啓動nginx # nginx -V
4、nginx服務控制
1. 啓動nginx
[root@izm5e8nyz28va3a786y465z tmp]# nginx
nginx: [emerg] mkdir() "/var/tem/nginx/client" failed (2: No such file or directory)
緣由:缺乏這個文件夾
建立:mkdir -p /var/tem/nginx/client
修改全部者:chown nobody /var/tem/nginx/client
以後,nginx能正常啓動
2.