Nginx 在工作中已經(jīng)有好幾個環(huán)境在使用了,每次都是重新去網(wǎng)上找博客,各種編譯配置,今天自己也整理一份安裝文檔和 nginx.conf 配置選項(xiàng)的說明,留作以后參考。
1. 安裝nginx
1.1 選擇穩(wěn)定版本
我們編譯安裝nginx來定制自己的模塊,機(jī)器CentOS 6.2 x86_64。首先安裝缺少的依賴包:
代碼如下:
# yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel
這些軟件包如果yum上沒有的話可以下載源碼來編譯安裝,只是要注意編譯時默認(rèn)安裝的目錄,確保下面在安裝nginx時能夠找到這些動態(tài)庫文件(ldconfig)。
從 http://nginx.org/en/download.html 下載穩(wěn)定版nginx-1.6.3.tar.gz到/usr/local/src下解壓。
為了后續(xù)準(zhǔn)備我們另外下載2個插件模塊:nginx_upstream_check_module-0.3.0.tar.gz —— 檢查后端服務(wù)器的狀態(tài),nginx-goodies-nginx-sticky-module-ng-bd312d586752.tar.gz(建議在/usr/local/src下解壓后將目錄重命名為nginx-sticky-module-ng-1.2.5) —— 后端做負(fù)載均衡解決session sticky問題。
請注意插件與nginx的版本兼容問題,一般插件越新越好,nginx不用追新,穩(wěn)定第一。nginx-1.4.7,nginx-sticky-module-1.1,nginx_upstream_check_module-0.2.0,這個搭配也沒問題。sticky-1.1與nginx-1.6版本由于更新沒跟上編譯出錯。(可以直接使用Tengine,默認(rèn)就包括了這些模塊)
[root@cachets nginx-1.6.3]# pwd/usr/local/src/nginx-1.6.3[root@cachets nginx-1.6.3]# ./configure --prefix=/usr/local/nginx-1.6 --with-pcre /> --with-http_stub_status_module --with-http_ssl_module /> --with-http_gzip_static_module --with-http_realip_module /> --add-module=../nginx_upstream_check_module-0.3.0[root@cachets nginx-1.6.3]# make && make install
1.2 常用編譯選項(xiàng)說明
nginx大部分常用模塊,編譯時./configure --help以--without開頭的都默認(rèn)安裝。
--prefix=PATH : 指定nginx的安裝目錄。默認(rèn) /usr/local/nginx --conf-path=PATH : 設(shè)置nginx.conf配置文件的路徑。nginx允許使用不同的配置文件啟動,通過命令行中的-c選項(xiàng)。默認(rèn)為prefix/conf/nginx.conf --user=name: 設(shè)置nginx工作進(jìn)程的用戶。安裝完成后,可以隨時在nginx.conf配置文件更改user指令。默認(rèn)的用戶名是nobody。--group=name類似 --with-pcre : 設(shè)置PCRE庫的源碼路徑,如果已通過yum方式安裝,使用--with-pcre自動找到庫文件。使用--with-pcre=PATH時,需要從PCRE網(wǎng)站下載pcre庫的源碼(版本4.4 – 8.30)并解壓,剩下的就交給Nginx的./configure和make來完成。perl正則表達(dá)式使用在location指令和 ngx_http_rewrite_module模塊中。 --with-zlib=PATH : 指定 zlib(版本1.1.3 – 1.2.5)的源碼解壓目錄。在默認(rèn)就啟用的網(wǎng)絡(luò)傳輸壓縮模塊ngx_http_gzip_module時需要使用zlib 。 --with-http_ssl_module : 使用https協(xié)議模塊。默認(rèn)情況下,該模塊沒有被構(gòu)建。前提是openssl與openssl-devel已安裝 --with-http_stub_status_module : 用來監(jiān)控 Nginx 的當(dāng)前狀態(tài) --with-http_realip_module : 通過這個模塊允許我們改變客戶端請求頭中客戶端IP地址值(例如X-Real-IP 或 X-Forwarded-For),意義在于能夠使得后臺服務(wù)器記錄原始客戶端的IP地址 --add-module=PATH : 添加第三方外部模塊,如nginx-sticky-module-ng或緩存模塊。每次添加新的模塊都要重新編譯(Tengine可以在新加入module時無需重新編譯)新聞熱點(diǎn)
疑難解答
圖片精選