Nginx 編譯安裝

Nginx (“engine x”) 是一個高性能的 HTTP 反向代理服務器,也是一個 IMAP/POP3/SMTP 代理服

1Apache服務器和nginx的優缺點:

Apache具有很優秀的性能,而且通過模塊可以提供各種豐富的功能。
1)首先Apache對客戶端的響應是支持并發的 ,運行httpd這個daemon進程之后,它會同時產生多個子進程/線程,每個子進程/線程分別對客戶端的請求進行響應;

Apache兩種工作模式:prefork模式與worker模式

prefork每個子進程只有一個線程,效率高但消耗內存大。worker模式每個子進程有多個線程,內存消耗低,但一個線程崩潰會牽連其它同子進程的線程。
2)另外,Apache可以提供靜態和動態的服務 ,例如對于PHP的解析不是通過性能較差的CGI實現的而是通過支持PHP的模塊來實現的(通常為mod_php5,或者叫做apxs2)。
3)缺點:
因此通常稱為Apache的這種Serverprocess-based server ,也就是基于多進程的HTTPServer,因為它需要對每個用戶請求創建一個子進程/線程進行響應;
這樣的缺點是,如果并發的請求非常多(這在大型門戶網站是很常見的)就會需要非常多的線程,從而占用極多的系統資源CPU和內存。因此對于并發處理不是Apache的強項。
4)解決方法:
目前來說出現了另一種WebServer,在并發方面表現更加優越,叫做異步服務器。最有名的為NginxLighttpd。所謂的異步服務器是事件驅動程序模式的event-driven,除了用戶的并發請求通常只需要一個單一的或者幾個線程。因此占用系統資源就非常少。這幾種又被稱為lightweight web server。舉例,對于10,000的并發連接請求,nginx可能僅僅使用幾M的內存;而Apache可能需要使用幾百M的內存資源。
nginxApache類似都通過各種模塊可以對服務器的功能進行豐富的擴展,同樣都是通過conf配置文件對各種選項進行配置。對于PHP等,nginx沒有內置的模塊來對PHP進行支持,而是通過FastCGI來支持的。
nginx則沒有自己提供處理PHP的功能,需要通過第三方的模塊來提供對PHP進行FastCGI方式的集成。

Nginx專為性能優化而開發,其最知名的優點是它的穩定性和低系統資源消耗,以及對HTTP并發連接的高處理能力(單臺物理服務器可支持3000050000個并發請求)。正因為如此,大量提供社交網站、新聞資訊、電子商務以及虛擬主機等服務的企業紛紛選擇Ngnix來提供WEB服務。

2、Nginx的安裝及運行控制:

目前Nginx的最新穩定版本為1.0.8,開發版本為1.1.6,其安裝文件可以從官方網站http://www.nginx.org下載,下面以穩定版為例,介紹nginx的安裝和運行控制。

編譯安裝Nginx

1)安裝支持軟件:

Nginx的配置及運行需要pcrezlib等軟件包的支持,因此應預先安裝這些軟件的開發包(devel),以便提供相應的庫和頭文件,確保Nginx的安裝順利完成。

1.png

2)創建運行用戶、組:

Nginx服務程序默認以nobody身份運行,為其創建專門的用戶賬號,以便更準確地控制其訪問權限,增加靈活性、降低安全風險。如:創建一個名為nginx的用戶,不建立宿主目錄,也禁止登錄到shell環境。

2.png

3)編譯安裝nginx

釋放nginx源碼包

3.png

編譯前配置:

4.png

注:配置前可以參考:./configure  –help給出說明

–prefix:設定Nginx的安裝目錄

–user—group:指定Nginx運行用戶和組

–with-http_stub_status_module:啟用http_stub_status_module模塊以支持狀態統計

編譯:

5.png

安裝:

6.png

至此Nginx安裝完成,為了使Nginx服務器的運行更加方便,可以為主程序nginx創建鏈接文件,以便管理員直接執行nginx命令就可以調用Nginx的主程序。

7.png

Nginx的運行控制:

apache的主程序httpd類似,Nginx的主程序也提供了”-t”選項用來對配置文件進行檢查,以便找出不當或錯誤的配置。配置文件nginx.conf默認位于安裝目錄下的conf/子目錄中。若要檢查位于其他位置的配置文件,可使用”-c”選項來指定路徑。

8.png

啟動、停止Nginx

直接運行nginx即可啟動Nginx服務器,這種方式將使用默認的配置文件,若要改用其他配置文件,需添加”-c  配置文件路徑選項來指定路徑。需要注意的是,若服務器中已安裝有httpd等其他WEB服務軟件,應采取措施避免部突。

9.png

通過檢查 Nginx程序的監聽狀態,或者在瀏覽器中訪問此WEB服務(默認頁面將顯示“Welcome to nginx!”),可以確認Nginx服務是否正常運行。

或使用elinks瀏覽器(需安裝elinks軟件包。yum  -y install  elinks

注意:要在防火墻上允許80端口的通信。

停止Nginx服務:

#Killall  -9  nginx

Nginx進程運行時,PID號默認存放在logs/目錄下的nginx.pid文件中,因此若改用kill命令,也可以根據nginx.pid文件中的PID號來進行控制。

為了使Nginx服務的啟動、停止、重載等操作更加方便,可以編寫Nginx服務腳本,并使用chkconfigservice工具來進行管理,也更加符合管理習慣。

腳本內容如下:

13.png

通過killkillall命令發送HUP信號表示重載配置, 用新的配置開始新的工作進程

關閉舊的工作進程。QUIT信號表示退出進程,KILL信號表示殺死進程。通過”-s”選項指定信號種類。

添加為系統服務。

14.png

這樣一來,就可以通過nginx腳本來啟動、停止、重啟、重載Nginx服務器了。

原創文章,作者:Anhur,如若轉載,請注明出處:http://www.www58058.com/67595

(0)
AnhurAnhur
上一篇 2017-02-05 20:51
下一篇 2017-02-06 14:40

相關推薦

  • 測試

    3、查詢file.txt以abc結尾的行grep "abc$" file.txt4、刪除file.txt文件中的空行grep -v '^$' file.txt > file.txtsed '/^$/d' file.txt > file.txt(覆蓋重定向文件變為空該文件為空,但是追加時正常成功?!?/p>

    Linux干貨 2016-06-12
  • linux基礎命令

            轉眼已經過了一周,在南老師的悉心指導下,我學會了一些基礎的LINUX命令,下面做一下本周小結。 命令1:tty、who am i、whoami、w 作用:查看當前登錄信息            終端傳遞信息 echo hello &g…

    Linux干貨 2017-07-15
  • DNS

    這里都以我本機的實驗為例 正向解析:就是從主機名到IP的解析過程 先在工作目錄/var/named/創建一個區域數據文件 以zcylinux.io域為例:vim/var/named/zcylinux.io.zone $TTL  600     #設置全局變量TTL的值為600s zcylinux.io.&nb…

    Linux干貨 2017-05-30
  • grep命令v2

    顯示netstat 以LISTEN結尾,或后接空白的行

    Linux干貨 2016-11-20
  • grep&正則表達式

    grep&正則表達式 grep(global search regular expression(RE) and print out the line,全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。 語法 grep [選項]… PATTERN [FILE]… 選項 -a 不要忽略…

    Linux干貨 2018-03-23
  • MAN手冊各章節功能介紹及快捷鍵鍵位整理

    Linux系統中man命令是用于查詢命令使用手冊的,使用格式 man + 命令。 當使用man命令之后,系統就會在指定的路徑中查詢命令的使用手冊。其中制定路徑為$PATH變量指定的路徑,或者/etc/man.config文件中MANPATH中指定的路徑  其中/etc/man.config中有如下內容: MANPATH /usr/man …

    Linux干貨 2016-10-17
欧美性久久久久