首先去官網(wǎng)下載nginx
下載后由于它是一個(gè)源碼包,需要編譯,還要安裝編譯環(huán)境
安裝編譯環(huán)境
需要安裝gcc的環(huán)境。yum install gcc-c++
-
安裝編譯時(shí)的依賴庫(kù)
- PCRE
????PCRE(Perl Compatible Regular Expressions)是一個(gè)Perl庫(kù),包括 perl 兼容的正則表達(dá)式庫(kù)。nginx的http模塊使用pcre來(lái)解析正則表達(dá)式,所以需要在linux上安裝pcre庫(kù)。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre開(kāi)發(fā)的一個(gè)二次開(kāi)發(fā)庫(kù)。nginx也需要此庫(kù)。 - zlib
????zlib庫(kù)提供了很多種壓縮和解壓縮的方式,nginx使用zlib對(duì)http包的內(nèi)容進(jìn)行g(shù)zip,所以需要在linux上安裝zlib庫(kù)。
yum install -y zlib zlib-devel - openssl
????OpenSSL 是一個(gè)強(qiáng)大的安全套接字層密碼庫(kù),囊括主要的密碼算法、常用的密鑰和證書(shū)封裝管理功能及SSL協(xié)議,并提供豐富的應(yīng)用程序供測(cè)試或其它目的使用。
nginx不僅支持http協(xié)議,還支持https(即在ssl協(xié)議上傳輸http),所以需要在linux安裝openssl庫(kù)。
yum install -y openssl openssl-devel
- PCRE
開(kāi)始安裝
- 上傳nginx源碼包
- 解壓縮
- 進(jìn)入壓縮后的目錄,使用configure命令創(chuàng)建makeFile文件
./configure --prefix=/home/gordon/software/nginx 指定安裝目錄
注意:?jiǎn)?dòng)nginx之前,文件目錄不存在著,使用“-p” 逐級(jí)創(chuàng)建目錄:mkdir /var/temp/nginx/ -p
- make (編譯)
- make install (安裝)
- 進(jìn)入sbin目錄,執(zhí)行 ./nginx 啟動(dòng)
-
查看是否已經(jīng)啟動(dòng):ps aux|grep nginx
nginx啟動(dòng).png - 訪問(wèn)nginx: 在瀏覽器中輸入centos ip4的地址,端口默認(rèn)80可以不輸入??赡艹霈F(xiàn)以下兩種情況:
- 瀏覽器顯示無(wú)法訪問(wèn)
????這是因?yàn)閘inux中訪問(wèn)1024以下端口只能是root用戶才可以訪問(wèn),使用sudo ./nginx啟動(dòng),或者將nginx.conf中端口修改成大于1024,再次訪問(wèn) - 403 forbidden
????這里有幾種情況- 權(quán)限問(wèn)題
????查看安裝路徑下所有目錄及文件的權(quán)限是否能被當(dāng)前用戶讀寫(xiě)(注意要逐級(jí)查看)。
- 權(quán)限問(wèn)題
ls -l中顯示的內(nèi)容如下:
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc
- 10個(gè)字符確定不同用戶能對(duì)文件干什么
- 第一個(gè)字符代表文件(-)、目錄(d),鏈接(l)
- 其余字符每3個(gè)一組(rwx),讀(r)、寫(xiě)(w)、執(zhí)行(x)
- 第一組rwx:文件所有者的權(quán)限是讀、寫(xiě)和執(zhí)行
- 第二組rw-:與文件所有者同一組的用戶的權(quán)限是讀、寫(xiě)但不能執(zhí)行
- 第三組r--:不與文件所有者同組的其他用戶的權(quán)限是讀不能寫(xiě)和執(zhí)行
也可用數(shù)字表示為:r=4,w=2,x=1 因此rwx=4+2+1=7
- 1 表示連接的文件數(shù)
- root 表示用戶
- root表示用戶所在的組
- 1213 表示文件大?。ㄗ止?jié))
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名
改變權(quán)限的命令
chmod 改變文件或目錄的權(quán)限
chmod 755 abc:賦予abc權(quán)限r(nóng)wxr-xr-x
chmod u=rwx,g=rx,o=rx abc:同上u=用戶權(quán)限,g=組權(quán)限,o=不同組其他用戶權(quán)限
chmod u-x,g+w abc:給abc去除用戶執(zhí)行的權(quán)限,增加組寫(xiě)的權(quán)限
chmod a+r abc:給所有用戶添加讀的權(quán)限
- 目錄里面沒(méi)有index.html,或者nginx.conf中的root目錄路徑不對(duì)
????這里最大的可能性是root目錄路徑不對(duì),由于是指定安裝目錄,但是root默認(rèn)為html,我們應(yīng)該改為全路徑。當(dāng)然如果是index.html沒(méi)有的話就隨便新建一個(gè)試試,再次訪問(wèn)能正常顯示即可。 - SELinux是開(kāi)啟的(SELinux是一種安全子系統(tǒng),有時(shí)會(huì)將正常的命令當(dāng)做是有安全隱患的,從而攔截)
????查看SELinux狀態(tài): /usr/sbin/sestatus -v 如果是enabled即為開(kāi)啟狀態(tài)
????關(guān)閉SELinux(臨時(shí)關(guān)閉,不用重啟機(jī)器):
????????setenforce 0 #設(shè)置SELinux 成為permissive模式
????????#setenforce 1 設(shè)置SELinux 成為enforcing模式
????永久關(guān)閉(需要重啟機(jī)器):
????????修改/etc/selinux/config 文件,將SELINUX=enforcing改為SELINUX=disabled
備注:如果是剛安裝完,最好以root用戶啟動(dòng),先看是否能訪問(wèn)成功,再根據(jù)自己想法修改
- 關(guān)閉nginx: ./nginx -s stop (強(qiáng)制關(guān)閉) ./nginx -s quit(安全退出)
- 重啟nginx:nginx -s reload 改變配置文件的時(shí)候,重啟nginx工作進(jìn)程,配置文件即時(shí)生效
- 查看日志:nginx -s reopen
備注:如果想直接啟動(dòng)nginx,可以配置環(huán)境變量,方法跟jdk一樣。 -
配置環(huán)境變量
nginx環(huán)境變量.png

