Nginx是一個(gè)開源的叮雳,支持高性能温圆、高并發(fā)的www服務(wù)和代理服務(wù)軟件。它是有俄羅斯人Igor Sysoev開發(fā)的诲宇,作者將其以BSD的許可證的形式開源供全球使用际歼。如果你對(duì)Apache比較熟悉,當(dāng)然也無法無法避免地聽過這個(gè)市場(chǎng)份額不斷上升的服務(wù)代理軟件姑蓝。目前國內(nèi)的大公司淘寶鹅心、新浪等都有在使用Nginx.可見Nginx受歡迎程度。下面來介紹一下博主自己安裝Nginx的過程它掂。
<p>
首先我們假設(shè)的前提是你們已經(jīng)安裝了centos操作系統(tǒng)巴帮,已經(jīng)能夠訪問Internet了溯泣。
</p>
1.首先第一步安裝Nginx的依賴庫以及文件虐秋,在命令行模式下輸入以下命令。
yum -y install openssl openssl-devel
yum -y install pcre pcre-devel
2.然后第二部安裝Nginx的二進(jìn)制壓縮包文件垃沦,現(xiàn)在我們使用的是wget命令來獲取壓縮包文件客给,可能系統(tǒng)出現(xiàn)一下的錯(cuò)誤。
-bash command:wget can not found
這是我們的系統(tǒng)沒有安裝wget這個(gè)命令肢簿,這個(gè)可以直接用yum來安裝
yum -y install wget
接下來要在Nginx的官網(wǎng)下載壓縮包靶剑,這里我選擇的是nginx-1.6.3.tar.gz,在命令模式輸入以下命令:
wget -p http://nginx.org/download/nginx-1.6.3.tar.gz
這會(huì)在當(dāng)前的目錄下下載到一個(gè)壓縮包蜻拨,我們?cè)?home/yourself(這里是你自己的用戶名)創(chuàng)建一個(gè)文件夾來來放置Nginx包,一系列命令如下:
cd /home/yourself
mkdir myNginx
cd myNginx
mv .../nginx-1.6.3.tar.gz /home/yourself/myNginx 這里..是你之前下載壓縮包的時(shí)候的路徑
3.解壓縮nginx-1.6.3.tar.gz,輸入以下命令:
tar -zxvf nginx-1.6.3.tar.gz
但是此時(shí)系統(tǒng)報(bào)了錯(cuò)誤:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
找了很多的出錯(cuò)的解決方法,有人說是因?yàn)檫@個(gè)壓縮包沒有用gzip的方式進(jìn)行壓縮桩引,所以只需要輸入:
tar -vfx nginx-1.6.3.tar.gz
然而博主自己并沒有解決自己的問題缎讼,也試過修改壓縮的包名為nginx-1.6.3.tar。但是并沒有解決問題坑匠。后來找到的問題是下載的壓縮包文件是被破壞的血崭,所以通過ftp工具把nginx包上傳到centos系統(tǒng)。這個(gè)解決了不能解壓縮的問題厘灼。
4.解壓縮之后夹纫,當(dāng)前的目錄會(huì)有一個(gè)nginx-1.6.3的文件夾。
cd nginx-1.6.3
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.6.3/
--with-http_stub_status_module --with-http_ssl_module
上面的參數(shù)詳細(xì)解釋一下:
--prefix=PATH //設(shè)置安裝路徑
--user=USER //進(jìn)程用戶權(quán)限
--group=GROUP //進(jìn)程用戶組的權(quán)限
--with-http_stub_status_module //激活狀態(tài)信息
--with-http_ssl_module //激活ssl功能
5.編譯和安裝以及建立文件的軟連接
make && make install
ln -s /application /nginx-1.6.3 /application/nginx
6.查看文件的權(quán)限
ls -l /application/nginx/
7.啟動(dòng)并檢查安裝結(jié)果
安裝完Nginx之后设凹,并不能直接對(duì)外提供服務(wù)舰讹,需要先啟動(dòng)Nginx服務(wù)才行,具體操作如下闪朱。
啟動(dòng)之前月匣,檢查Nginx的配置語法是否出錯(cuò)
/application/nginx/sbin/nginx -t
如果沒有出現(xiàn)啟動(dòng)異常問題,接下來用curl來訪問nginx:
curl 127.0.0.1(localhost)
如果可以查看到nginx的index文件就說明Nginx安裝已經(jīng)成功了奋姿。
接下來桶错,可能安裝的啟動(dòng)過程出現(xiàn)錯(cuò)誤,列舉以下以下錯(cuò)誤:
問題1:?jiǎn)?dòng)Nginx時(shí)有如下報(bào)錯(cuò)"nginx:[emerg] getpwnam("nginx")failed",這是因?yàn)闆]有對(duì)應(yīng)的Nginx用戶胀蛮,執(zhí)行
useradd nginx -s /sbin/nologin -M
創(chuàng)建用戶即可院刁。
問題2:編譯安裝pcre編譯軟件時(shí),gcc不全導(dǎo)致報(bào)錯(cuò).
[root@www~]# make && make install
make all-am
make [1]:Entering directory `/home/yourself/mynginx/pcre-8.30'
CXX pcrecpp.lo
libtool:compile:unrecognized option `-DHAVE_CONFIG_H'
libtool:compile:Try `libtool --help' for more information.
make[1]:***[pcrecpp.lo]//錯(cuò)誤1
make[1]:Leaving directory `/home/yourself/mynginx/pcre-8.30'
make:***[all]//錯(cuò)誤2
執(zhí)行yum -y install gcc-c++
命令安裝gcc-c++依賴包可以解決粪狼。
問題3:wget或者curl等軟件訪問不了Nginx頁面退腥。
此類問題的排查思路分在Nginx服務(wù)器端排查和在客戶端排查。服務(wù)器端的排查過程如下再榄。
首先關(guān)閉SElinux狡刘,命令如下:
setencenforce 0 //臨時(shí)關(guān)閉selinux的方法
grep SELINUX=disabled /etc/selinux/config //永久關(guān)閉
然后檢查防火墻
/etc/init.d/iptables stop //這是關(guān)閉防火墻的命令,如果是有外網(wǎng)IP的生產(chǎn)環(huán)境困鸥,請(qǐng)?jiān)试S80端口的訪問嗅蔬,而不是關(guān)閉防火墻
chkconfig iptables off //非正式環(huán)境下可以禁止防火墻開機(jī)啟動(dòng)。
/etc/init.d/iptables status //查看iptables的當(dāng)前狀態(tài)
問題4:在安裝的環(huán)節(jié)遇到以下的錯(cuò)誤:
./configure:error :SSL modules requires the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library into
the system,or build the OpenSSL library statically from the source with nginx by
using --with-openssl=<path> option
解決的方式是執(zhí)行命令:
yum -y install openssl openssl-devel
到此疾就,Nginx的安裝工作到此結(jié)束了澜术。