首頁 > 軟體

小白也可以完成的0基礎部署Nginx服務

2022-03-19 19:01:10

1. Nginx介紹:

1.1 Nginx是什麼?

Nginx(“engine x”)是一個開源的,支援高效能、高並行的www服務和代理服務軟體。

由俄羅斯人Igor Sysoev開發,最初應用於俄羅斯大型網站www.rambler.ru上。

Nginx具有高並行、佔用系統資源少等特性。

Nginx可以執行在UNIX、Linux、DSB、Mac OS X、Solaris及Windows等作業系統上。

1.2 Nginx主要特性

支援高並行:能支援幾萬並行連線

資源消耗少:三萬並行連線下,開始10個執行緒消耗記憶體不到200MB。

可以做HTTP反向代理及加速快取,即負載均衡功能,內建對RS節點伺服器健康檢查功能

具備Squid等專業快取軟體的快取功能

支援非同步網路I/O事件模型

1.3 Nginx軟體的主要功能應用

作為Web服務軟體

反向代理及負載均衡服務

前端業務資料快取服務

2. Nginx Web服務

2.1 Nginx作為Web伺服器應用場景

使用Nginx執行HTML、JS、CSS、小圖片等靜態資料

Nginx結合FastCGI執行PHP等動態程式

Nginx結合Tomcat/Resin等支援Java動態程式

2.2 如何選擇Web伺服器

工作中,根據需求來選擇合適的業務服務軟體:

  • 靜態業務:高並行場景,首選採用Nginx
  • 動態業務:Nginx與Apache都可,建議Nginx
  • 靜態+動態業務:推薦Nginx

3 編譯安裝Nginx

安裝方法多種,本文使用編譯安裝方式。如果需要大規模部署,可將業務需求客製化好rpm包,然後通過Ansible安裝。

3.1 安裝pcre庫

檢視當前系統版本:

cat /etc/redhat-release
uname -r

結果:

CentOS release 6.10 (Final)
2.6.32-754.el6.x86_64

採用yum方式安裝pcre:

yum -y install pcre pcre-devel
rpm -qa pcre pcre-devel

結果:

pcre-devel-7.8-7.el6.x86_64
pcre-7.8-7.el6.x86_64

3.2 安裝Nginx

檢查是否裝有openssl、openssl-devel:

rpm -qa openssl openssl-devel

結果:如果沒有,使用yum安裝

openssl-1.0.1e-57.el6.x86_64
openssl-devel-1.0.1e-57.el6.x86_64

建立nginx包存放目錄:

mkdir -p /app/nginx-1.8.1
mkdir -p /server/tools
cd /server/tools/

下載nginx軟體包:

官方地址:www.nginx.rog

wget -q http://nginx.org/download/nginx-1.8.1.tar.gz

建立nginx使用者:

useradd nginx -s /sbin/nologin -M

解壓軟體包並進入解壓後的目錄:

tar xf nginx-1.8.1.tar.gz
cd nginx-1.8.1

進行編譯:
編譯模組可以通過./configure --help檢視

./configure --user=nginx --group=nginx --prefix=/app/nginx-1.8.1/ --with-http_stub_status_module --with-http_ssl_module

安裝:

make
make install

建立軟連結:方便使用以及版本升級

ln -s /app/nginx-1.8.1/ /app/nginx

啟動前測試:

/app/nginx/sbin/nginx -t

結果:

nginx: the configuration file /app/nginx-1.8.1//conf/nginx.conf syntax is oknginx: configuration file /app/nginx-1.8.1//conf/nginx.conf test is successful

啟動Nginx服務並檢查埠:

/app/nginx/sbin/nginx
netstat -utpln | grep 80

結果:

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      13689/nginx

檢查Nginx啟動結果:以下內容代表啟動成功

curl 192.168.1.31

結果:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/" rel="external nofollow" >nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/" rel="external nofollow" >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

4. Nginx目錄結構與組態檔

4.1 Nginx目錄結構說明

tree /app/nginx
/app/nginx
├── client_body_temp
├── conf							#nginx組態檔目錄
│   ├── fastcgi.conf				#fastcgi相關引陣列態檔
│   ├── fastcgi.conf.default
│   ├── fastcgi_params				#fastcgi引數檔案
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types					#媒體型別
│   ├── mime.types.default
│   ├── nginx.conf					#Nginx主組態檔
│   ├── nginx.conf.default
│   ├── scgi_params					#scgi組態檔
│   ├── scgi_params.default
│   ├── uwsgi_params				#uwsgi組態檔
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp					#fastcgi臨時資料檔案
├── html							#預設站點目錄
│   ├── 50x.html					#錯誤頁面顯示檔案
│   └── index.html					#預設的站點首頁檔案
├── logs							#預設紀錄檔路徑
│   ├── access.log					#預設存取紀錄檔檔案
│   ├── error.log					#預設錯誤紀錄檔檔案
│   └── nginx.pid					#Nginx的pid檔案
├── proxy_temp						#臨時目錄
├── sbin							#Nginx命令目錄
│   ├── nginx						#啟動命令
│   └── nginx.old
├── scgi_temp						#臨時目錄
└── uwsgi_temp						#臨時目錄

9 directories, 22 files

4.2 Nginx主組態檔

去註釋顯示組態檔:

egrep -v "#|^$" /app/nginx/conf/nginx.conf.default

結果:

worker_processes  1;                            #worker程序數量
events {                                        #事件區塊開始
    worker_connections  1024;                    #單worker程序支援的最大連線
}                                                #事件區塊結束
http {                                            #HTTP區塊開始
    include       mime.types;                    #支援的媒體型別庫
    default_type  application/octet-stream;        #預設媒體型別
    sendfile        on;                            #開啟高效傳輸模式
    keepalive_timeout  65;                        #連線超時
    server {                                    #server區塊開始
        listen       80;                        #伺服器埠,預設80
        server_name  localhost;                    #域名主機名
        location / {                            #location區塊開始
            root   html;                        #站點根目錄
            index  index.html index.htm;        #預設首頁檔案
        }                                        #location區塊結束
        error_page   500 502 503 504  /50x.html;#對應狀態碼及迴應
        location = /50x.html {                    #location開始迴應50x.html
            root   html;                        #站點目錄為html
        }                                        
    }
}                                                #HTTP區塊結束

注:server區塊和location區塊可以是多個。

以上就是小白也可以完成的0基礎部署Nginx服務的詳細內容,更多關於Nginx服務部署的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com