Nginx
一.Nginx的安裝
準備的安裝包 :nginx-1.10.1.tar.gz
本次實驗環境與varnish的實驗環境是一樣的
採用源碼編譯方式安裝軟件
1.首先查看有沒有安裝gcc
2.解壓源碼包
Tar zxf nginx-1.10.1.tar.gz
解壓完可以看到有個新的目錄
Nginx-1.10.1
3.進入解壓好的源碼包
4.執行configure文件,功能是可以讓用戶選定編輯特性,並可以檢查編譯環境,configure執行後將生成MakeFile文件。
可以用下邊./configure --help命令查看後邊可以用到有哪些參數。
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module
注:過程中可能會缺失某個開發包,因此要用yum 再把這個包安裝一下,後綴都要加-devel
比如:
對這個命令的參數做一些解釋:
--prefix制定了安裝路徑 (第三方軟件一般都是安在/usr/local目錄下,後面的名字自己可以定)--with-http_ssl_module --with-http_stub_status_module是一些狀態模塊,讓其支持SSL,可以加一些狀態模塊的支持,不是所有的程序configure參數都是一樣的,可以使用./configure --help 查看詳細參數說明,如果該程序所依賴的庫在當前系統中沒有安裝,則會導致configure最後報錯,遇到這種情況就需要先安裝這些依賴庫。
5.執行make命令,編譯程序make
6.編譯成功後就可以安裝了。執行make install 命令,到此程序就安裝完成了
查看程序的安裝位置
可以看到nginx的進程,master和worker
查看端口狀態,所有使用的協議tcp 處於監聽狀態的,program的
使用curl測試:
在網頁瀏覽器中可以看到
二.Nginx配置隱藏版本號
1.首先將之前編譯安裝好的刪除掉,刪除掉安裝目錄,再把makefile文件清除下。
2.進入解壓好的源碼包
編輯vim nginx.h文件,把版本去掉
編輯 vim gcc 文件,註釋掉檢查bug的選項,這樣可以使安裝後的大小變小
註釋掉這行,去掉 debug 模式編譯,編譯以後程序只有幾百 k
3.再重新源碼安裝一下,跟上邊安裝一樣,三部曲
然後可以看到安裝後的大小,明顯小了很多。
4.對軟件的安裝路徑做個軟鏈接
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
做這個步驟的目的是可以在任何目錄下都可以使用對該軟件操作的目錄,而不需要專門跑到sbin目錄下./執行打開
可以實現:
如果出現以下錯誤時,解決辦法是將進程都殺死,重新打開
5.重新編譯完成,測試一下
可以看到,沒有nginx的版本號,這樣相對的來說更安全些了。
做一下對比
三.Nginx編譯安裝時動態模塊的加載問題
四.瞭解Nginx的主配置文件,看看修改什麼參數能夠實現什麼功能
1.修改執行worker進程的用戶
可以看到,worker是nobody,如何修改它
進入配置文件中修改
Ps-aux 查看,可以看到已經換過來了
2.對資源cpu進程限制等的調節
查看cpu的相關信息
Nginx中的worker數是由cpu的數量決定的,與cpu的數量相等
3.開啓nginx的SSL 443和設置網頁重定向
首先修改配置文件,找到http塊
編輯http塊
然後把這個模塊的註釋除掉
然後開始生成密鑰
生成完之後會有一個cert.pem文件,將其移到配置文件的目錄下。
之後檢查語法是否有問題,並重新加載
測試一下,看是否功能有了
首先編輯配置文件:localhost 改爲主機名
重新加載
網頁訪問,可以看到已經有加密認證
如何直接在輸入http就直接到爲https,需要設置重定向。
<meta http-equiv='refresh' content="0;url=https://server1.example.com">
之後還可以實現其他的虛擬主機手寫調轉,進行網頁重定向
這樣設置完之後重新加載軟件,就可以實現。
4.nginx的虛擬主機
首先解釋一下虛擬主機的概念,所謂的虛擬主機,基本上就是讓你的一臺服務器上面,有好多個‘主網頁’存在,也就是說,硬件實際上只有一臺主機,但是由網站上來看,則似乎有多臺主機存在的樣子,比如說你單擊進入兩個不同的網站,會發現看到的是不一樣的信息內容,不過,如果用dig之類的軟件來檢驗IP的話,會發現兩個網站又同指向一個IP,虛擬主機的主要功能就是可以讓你的多個主機名對應到不同的主網頁目錄,所以看起來就好像是有多臺實際主機的樣子
還是配置主配置文件中的http塊:(任意一次修改配置文件後,都檢查一下語法有沒有錯,然後重新再加載一下)
主機上的配置
使用真機瀏覽器測試一下
5.nginx的負載均衡
(1)實驗環境會用上172.25.47.2 和172.25.47.3兩臺虛擬機
172.25.47.1的主配置文件中添加
指向兩臺後端服務器
Server2:
Server3:
真機做測試:
(2)修改主配置中的參數做測試
可以看到2解析的多
(3)把3只作爲備份的話,全是2解析的,只有當2down掉後3纔起來
關閉2的httpd服務
重啓2的httpd服務後,測試的還是都是2在解析
(4)
測試:
將兩個後臺的http服務都關閉後,測試的就是第三臺那個
這種方法常用在系統出現問題時,會給返回一個系統正在維修中,稍後訪問,避免系統出現故障後,還有很多的客依然還要訪問