Nginx的搭建

Nginx

一.Nginx的安裝

準備的安裝包 :nginx-1.10.1.tar.gz

本次實驗環境與varnish的實驗環境是一樣的

採用源碼編譯方式安裝軟件

1.首先查看有沒有安裝gcc

wps8CA2.tmp

2.解壓源碼包

Tar zxf  nginx-1.10.1.tar.gz

wps8CA3.tmp

解壓完可以看到有個新的目錄

Nginx-1.10.1

3.進入解壓好的源碼包

wps8CA4.tmp

4.執行configure文件,功能是可以讓用戶選定編輯特性,並可以檢查編譯環境,configure執行後將生成MakeFile文件。

可以用下邊./configure --help命令查看後邊可以用到有哪些參數。

wps8CA5.tmp

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module

wps8CB5.tmp

wps8CB6.tmp

注:過程中可能會缺失某個開發包,因此要用yum 再把這個包安裝一下,後綴都要加-devel

比如:

wps8CB7.tmp

對這個命令的參數做一些解釋:

--prefix制定了安裝路徑 (第三方軟件一般都是安在/usr/local目錄下,後面的名字自己可以定)--with-http_ssl_module --with-http_stub_status_module是一些狀態模塊,讓其支持SSL,可以加一些狀態模塊的支持,不是所有的程序configure參數都是一樣的,可以使用./configure --help 查看詳細參數說明,如果該程序所依賴的庫在當前系統中沒有安裝,則會導致configure最後報錯,遇到這種情況就需要先安裝這些依賴庫。

5.執行make命令,編譯程序make

wps8CB8.tmp

6.編譯成功後就可以安裝了。執行make install 命令,到此程序就安裝完成了

wps8CB9.tmp

查看程序的安裝位置

wps8CBA.tmp

可以看到nginx的進程,master和worker

wps8CBB.tmp

查看端口狀態,所有使用的協議tcp 處於監聽狀態的,program的

wps8CBC.tmp

使用curl測試:

wps8CBD.tmp

在網頁瀏覽器中可以看到

wps8CCE.tmp

二.Nginx配置隱藏版本號

1.首先將之前編譯安裝好的刪除掉,刪除掉安裝目錄,再把makefile文件清除下。

wps8CCF.tmp

2.進入解壓好的源碼包

wps8CD0.tmp

編輯vim nginx.h文件,把版本去掉

wps8CD1.tmp

wps8CD2.tmp

編輯 vim gcc 文件,註釋掉檢查bug的選項,這樣可以使安裝後的大小變小

註釋掉這行,去掉 debug 模式編譯,編譯以後程序只有幾百 k

wps8CD3.tmp

3.再重新源碼安裝一下,跟上邊安裝一樣,三部曲

然後可以看到安裝後的大小,明顯小了很多。

wps8CD4.tmp

4.對軟件的安裝路徑做個軟鏈接

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/

wps8CD5.tmp

wps8CD6.tmp

做這個步驟的目的是可以在任何目錄下都可以使用對該軟件操作的目錄,而不需要專門跑到sbin目錄下./執行打開

可以實現:

wps8CD7.tmp

如果出現以下錯誤時,解決辦法是將進程都殺死,重新打開

wps8CE7.tmp

wps8CE8.tmp

5.重新編譯完成,測試一下

可以看到,沒有nginx的版本號,這樣相對的來說更安全些了。

wps8CE9.tmp

做一下對比

wps8CEA.tmp

三.Nginx編譯安裝時動態模塊的加載問題
四.瞭解Nginx的主配置文件,看看修改什麼參數能夠實現什麼功能

1.修改執行worker進程的用戶

可以看到,worker是nobody,如何修改它

wps8CEB.tmp

進入配置文件中修改

wps8CEC.tmp

wps8CED.tmp

Ps-aux 查看,可以看到已經換過來了

wps8CEE.tmp

2.對資源cpu進程限制等的調節

查看cpu的相關信息

wps8CEF.tmp

Nginx中的worker數是由cpu的數量決定的,與cpu的數量相等

3.開啓nginx的SSL 443和設置網頁重定向

首先修改配置文件,找到http塊

編輯http塊

wps8CF0.tmp

然後把這個模塊的註釋除掉

wps8CF1.tmp

然後開始生成密鑰

wps8CF2.tmp

wps8CF3.tmp

生成完之後會有一個cert.pem文件,將其移到配置文件的目錄下。

之後檢查語法是否有問題,並重新加載

wps8CF4.tmp

測試一下,看是否功能有了

首先編輯配置文件:localhost 改爲主機名

wps8CF5.tmp

重新加載

網頁訪問,可以看到已經有加密認證

wps8CF6.tmp

wps8CF7.tmp

如何直接在輸入http就直接到爲https,需要設置重定向。

<meta http-equiv='refresh' content="0;url=https://server1.example.com">

之後還可以實現其他的虛擬主機手寫調轉,進行網頁重定向

wps8CF8.tmp

wps8CF9.tmp

這樣設置完之後重新加載軟件,就可以實現。

4.nginx的虛擬主機

首先解釋一下虛擬主機的概念,所謂的虛擬主機,基本上就是讓你的一臺服務器上面,有好多個‘主網頁’存在,也就是說,硬件實際上只有一臺主機,但是由網站上來看,則似乎有多臺主機存在的樣子,比如說你單擊進入兩個不同的網站,會發現看到的是不一樣的信息內容,不過,如果用dig之類的軟件來檢驗IP的話,會發現兩個網站又同指向一個IP,虛擬主機的主要功能就是可以讓你的多個主機名對應到不同的主網頁目錄,所以看起來就好像是有多臺實際主機的樣子

還是配置主配置文件中的http塊:(任意一次修改配置文件後,都檢查一下語法有沒有錯,然後重新再加載一下)

wps8CFA.tmp

主機上的配置

wps8CFB.tmp

使用真機瀏覽器測試一下

wps8D0C.tmp

wps8D0D.tmp

5.nginx的負載均衡

(1)實驗環境會用上172.25.47.2 和172.25.47.3兩臺虛擬機

172.25.47.1的主配置文件中添加

指向兩臺後端服務器

wps8D0E.tmp

wps8D0F.tmp

Server2:

wps8D10.tmp

Server3:

wps8D11.tmp

真機做測試:

wps8D12.tmp

(2)修改主配置中的參數做測試

wps8D13.tmp

可以看到2解析的多

wps8D14.tmp

(3)把3只作爲備份的話,全是2解析的,只有當2down掉後3纔起來

wps8D15.tmp

wps8D16.tmp

關閉2的httpd服務

wps8D17.tmp

wps8D18.tmp

重啓2的httpd服務後,測試的還是都是2在解析

wps8D19.tmp

wps8D1A.tmp

(4)

wps8D1B.tmp

測試:

wps8D1C.tmp

將兩個後臺的http服務都關閉後,測試的就是第三臺那個

wps8D1D.tmp

這種方法常用在系統出現問題時,會給返回一個系統正在維修中,稍後訪問,避免系統出現故障後,還有很多的客依然還要訪問

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章