編譯安裝nginx
一慨绳、Nginx簡介
1.Nginx的簡介
Nginx 是一款高性能的 http 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。由俄羅斯的程序設(shè)計師伊戈爾·西索夫(Igor Sysoev)所開發(fā)老虫,官方測試 nginx 能夠支支撐 5 萬并發(fā)鏈接更鲁,并且 cpu、內(nèi)存等資源消耗卻非常低呵晨,運行非常穩(wěn)定魏保。
2. Nginx應(yīng)用場景
- 【ttp 服務(wù)器】。Nginx 是一個 http 服務(wù)可以獨立提供 http 服務(wù)摸屠∥铰蓿可以做網(wǎng)頁靜態(tài)服務(wù)器。
- 【虛擬主機】季二¢菰郏可以實現(xiàn)在一臺服務(wù)器虛擬出多個網(wǎng)站揭措。例如個人網(wǎng)站使用的虛擬主機。
- 【反向代理刻蚯,負(fù)載均衡】绊含。當(dāng)網(wǎng)站的訪問量達(dá)到一定程度后,單臺服務(wù)器不能滿足用戶的請求時炊汹,需要用多臺服務(wù)器集群可以使用 nginx 做反向代理躬充。并且多臺服務(wù)器可以平均分擔(dān)負(fù)載,不會因為某臺服務(wù)器負(fù)載高宕機而某臺服務(wù)器閑置的情況兵扬。
二麻裳、Nginx在Linux下的安裝的環(huán)境準(zhǔn)備
1.環(huán)境準(zhǔn)備
- 需要安裝 gcc 的環(huán)境
yum -y install gcc-c++
- 第三方的開發(fā)包PCRE
PCRE(Perl Compatible Regular Expressions)是一個 Perl 庫,包括 perl 兼容的正則表達(dá)式庫器钟。nginx 的 http 模塊使用 pcre 來解析正則表達(dá)式津坑,所以需要在 linux 上安裝 pcre 庫。;pcre-devel 是使用 pcre 開發(fā)的一個二次開發(fā)庫傲霸。nginx 也需要此庫疆瑰。
yum install -y pcre pcre-devel
- zlib
zlib 庫提供了很多種壓縮和解壓縮的方式,nginx 使用 zlib 對 http 包的內(nèi)容進(jìn)行 gzip昙啄,所以需要在 linux 上安裝 zlib 庫穆役。
yum install -y zlib zlib-devel
- OpenSSL
OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法梳凛、常用的密鑰和證書封裝管理功能及 SSL 協(xié)議耿币,并提供豐富的應(yīng)用程序供測試或其它目的使用。nginx 不僅支持 http 協(xié)議韧拒,還支持 https(即在 ssl 協(xié)議上傳輸 http)淹接,所以需要在 linux安裝 openssl 庫。
yum install -y openssl openssl-devel
2. Nginx下載
三叛溢、Nginx在Linux下的安裝
1. 解壓縮文件夾
tar zxvf nginx-1.8.0.tar.gz
2. 進(jìn)入nginx-1.8.0目錄 使用 configure 命令創(chuàng)建一 makeFile 文件塑悼。
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
執(zhí)行后使用ll可以看到Makefile文件
補充
Makefile是一種配置文件, Makefile 一個工程中的源文件不計數(shù)楷掉,其按類型厢蒜、功能、模塊分別放在若干個目錄中烹植,makefile定義了一系列的規(guī)則來指定斑鸦,哪些文件需要先編譯,哪些文件需要后編譯草雕,哪些文件需要重新編譯鄙才,甚至于進(jìn)行更復(fù)雜的功能操作,因為 makefile就像一個Shell腳本一樣促绵,其中也可以執(zhí)行操作系統(tǒng)的命令。
configure參數(shù)
./configure \
--prefix=/usr \ #-- 指向安裝目錄
--sbin-path=/usr/sbin/nginx \ #-- 指向(執(zhí)行)程序文件(nginx)
--conf-path=/etc/nginx/nginx.conf \ #-- 指向配置文件
--error-log-path=/var/log/nginx/error.log \ #-- 指向log
--http-log-path=/var/log/nginx/access.log \ #-- 指向http-log
--pid-path=/var/run/nginx/nginx.pid \ #-- 指向pid
--lock-path=/var/lock/nginx.lock \ #-- (安裝文件鎖定,防止安裝文件被別人利用败晴,或自己誤操作浓冒。)
--user=nginx \
--group=nginx \
--with-http_ssl_module \ #-- 啟用ngx_http_ssl_module支持(使支持https請求,需已安裝openssl)
--with-http_flv_module \ #-- 啟用ngx_http_flv_module支持(提供尋求內(nèi)存使用基于時間的偏移量文件)
--with-http_stub_status_module \ #-- 啟用ngx_http_stub_status_module支持(獲取nginx自上次啟動以來的工作狀態(tài))
--with-http_gzip_static_module \ #-- 啟用ngx_http_gzip_static_module支持(在線實時壓縮輸出數(shù)據(jù)流)
--http-client-body-temp-path=/var/tmp/nginx/client/ #-- \ 設(shè)定http客戶端請求臨時文件路徑
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \ #-- 設(shè)定http代理臨時文件路徑
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ #-- 設(shè)定http fastcgi臨時文件路徑
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ #-- 設(shè)定http uwsgi臨時文件路徑
--http-scgi-temp-path=/var/tmp/nginx/scgi \ #-- 設(shè)定http scgi臨時文件路徑
--with-pcre #-- 啟用pcre庫
3.編譯
make
4.安裝
make install
5.創(chuàng)建臨時文件夾目錄
啟動nginx 之前尖坤,上邊將臨時文件目錄指定為/var/temp/nginx/client稳懒, 需要在/var 下創(chuàng)建此 目錄
mkdir /var/temp/nginx/client -p
6. 啟動方式
進(jìn)入到Nginx目錄下的sbin目錄
cd /usr/local/nginx/sbin
./nginx
# 啟動后查看進(jìn)程
ps aux|grep nginx
默認(rèn)為80端口
7.補充
- 關(guān)閉nginx
./nginx -s stop
# 或者
./nginx -s quit
- 更改配置文件后需要刷新配置文件
./nginx -s reload