1. 程式人生 > >Nginx服務簡介及編譯安裝詳解

Nginx服務簡介及編譯安裝詳解

nginx簡介 nginx編譯安裝步驟詳解 編寫Nginx啟動文件

Nginx服務簡介及編譯安裝詳解

一、Nginx簡介

Nginx是一個自由、開源、高性能及輕量級的HTTP服務器及反向代理服務器,其性能與IMAP/POP3代理服務器相當。Nginx以其高性能、穩定、功能豐富、配置簡單及占用系統資源少而著稱。Nginx 超越 Apache 的高性能和穩定性,使得國內使用 Nginx 作為 Web 服務器的網站也越來越多

二、Nginx工作原理

Nginx由內核和模塊組成,完成工作是通過查找配置文件將客戶端請求映射到一個location block(location是用於URL匹配的命令)location配置的命令會啟動不同模塊完成工作。Nginx模塊分為核心模塊,基礎模塊和第三方模塊。

1、核心模塊包括:HTTP模塊、EVENT模塊(事件)MAIL模塊。

2、基礎模塊包括:HTTP Access模塊、HTTP FastCGI模塊、HTTP Proxy模塊、HTTP Rewrit模塊。

3、第三方模塊包括:HTTP Upstream Request Hash模塊、Notice模塊、HTTP Access Key模塊。

三、Nginx的性能優勢

1Nginx作為web服務器可以快速處理靜態文件、索引文件以及自動索引效率高。

2Nginx作為代理服務器可以進行快速高效的反向代理,提升網站性能。

3Nginx作為負載均衡器既可以在內部直接支持 Rails PHP 程序對外進行服務, 也可以支持作為

HTTP代理服務器對外進行服務。同時支持簡單容錯和利用算法進行負載均衡。

4Nginx在性能方面,Nginx專為性能優化而開發,性能是其最重要的考量, 實現上非常註重效率。它支持內核Poll模型,能經受高負載的考驗, 有報告表明能支持高達 50000 個並發連接數,並在大並發時占用很低內存。

5Nginx在穩定性方面,采用分階段資源分配技術,使CPU資源占用率低。官方表示保持10000個沒有活動的連接,它只占2.5M內存,就穩定性而言, nginxlighthttpd更勝一籌。

6Nginx在高可用性方面,Nginx支持熱部署。它的啟動特別容易, 並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在不間斷服務的情況下,對軟件版本進行進行升級。

四、編譯安裝Nginx步驟詳解

本次Nginx是在CentOS7.3上進行安裝的。

1、先安裝Nginx需要的各種依賴軟件

[root@localhost ~]# yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc gcc-c++

2、下載Nginx安裝包或者上傳下載好的安裝包到服務器

[root@localhost ~]# wget http://nginx.org/download/nginx-1.12.1.tar.gz

[root@localhost ~]# tar xf nginx-1.12.1.tar.gz

3、創建Nginx運行的用戶和組(組在創建用戶時默認已經創建)

[root@localhost ~]# useradd nginx -s /sbin/nologin -M

4、編譯Nginx需要用到的模塊參數

[root@localhost ~]# cd nginx-1.12.1

[root@localhost nginx-1.12.1]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.12.1 --with-http_stub_status_module --with-http_ssl_module

[root@localhost nginx-1.12.1]# make && make install

5、啟動Nginx服務

[root@localhost nginx-1.12.1]# /usr/local/nginx-1.12.1/sbin/nginx

[root@localhost nginx-1.12.1]# netstat -antp | grep 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4627/nginx: master

五、編寫Nginx啟動文件並設置開機自啟

1、編寫Nginx啟動文件,使Nginx可以使用systemctl命令啟動

[root@localhost ~]# vim /usr/lib/systemd/system/nginx.service

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/nginx-1.12.1/logs/nginx.pid

ExecStart=/usr/local/nginx-1.12.1/sbin/nginx

ExecReload=/usr/local/nginx-1.12.1/sbin/nginx -s reload

ExecStop=/usr/local/nginx-1.12.1/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

[root@localhost ~]# systemctl enable nginx.service

[root@localhost ~]# systemctl start nginx.service

2、編寫的配置文件說明

[Unit]:服務的說明

Description:描述服務

After:依賴,當依賴的服務啟動之後再啟動自定義的服務

[Service]服務運行參數的設置

Type=forking是後臺運行的形式

ExecStart為服務的具體運行命令

ExecReload為重啟命令

ExecStop為停止命令

PrivateTmp=True表示給服務分配獨立的臨時空間

註意:啟動、重啟、停止命令全部要求使用絕對路徑

[Install]服務安裝的相關設置,可設置為多用戶

3、相關命令說明

啟動nginx服務

systemctl start nginx.service

設置開機自動啟動

systemctl enable nginx.service

停止開機自動啟動

systemctl disable nginx.service

查看狀態

systemctl status nginx.service

重啟服務

systemctl restart nginx.service

查看所有服務

systemctl list-units --type=service


Nginx服務簡介及編譯安裝詳解