1. 程式人生 > 實用技巧 >(一)lnmp架構的搭建:Nginx

(一)lnmp架構的搭建:Nginx

Nginx簡介:Nginx是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由俄羅斯的程式設計師Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0釋出於2004年10月4日。其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。Nginx是一款輕量級的Web伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強。在高併發連線的情況下,Nginx是Apache伺服器不錯的替代品。Nginx同時也可以作為7層負載均衡伺服器來使用。Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3萬以上的併發連線數,相當於同等環境下Apache的10倍

Nginx的優點:Nginx的主要特點是穩定、功能豐富、安裝配置簡單、低系統資源。Nginx對於反向代理和負載均衡有不錯的支援。Nginx不僅僅可以做為Web伺服器,還可以做負載均衡伺服器、代理伺服器和郵件伺服器。作為Web伺服器來說,相比 Apache,Nginx 使用更少的資源,支援更多的併發連線,Nginx處理靜態檔案、索引檔案,自動索引的效率非常高,體現更高的效率。作為代理伺服器,Nginx可以實現無快取的反向代理加速,提高網站的執行速度。作為負載均衡伺服器,Nginx既可以在內部直接支援Rails和PHP,也可以支援HTTP代理伺服器對外進行服務,同時還支援簡單的容錯和利用演算法進行負載均衡;Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。安裝配置上,Nginx安裝簡單、配置靈活、配置檔案非常簡潔(還能夠支援perl語法);效能方面,Nginx是專門為效能優化而開發的,非常注重效率。它採用Poll模型,可以支援更多的併發連線,最大可以支援對50000個併發連線數的形影,而且只佔用很低的記憶體資源;可用性方面,Nginx支援熱部署,啟動速度特別迅速,可以在不間斷服務的情況下,對軟體版本或者配置進行升級,及時執行數月也無需重新啟動,幾乎可以做到7*24顯示不間斷執行。

軟體環境:redhat6.5

實驗環境:虛擬機器三臺

server1:172.25.45.10

server2:172.25.45.20

server3:172.25.45.30


Lnmp環境的搭建-------Nginx

Nginx的安裝:


1tarzxfnginx-1.8.0.tar.gz
123cdnginx-1.8.0yuminstallpcre-developenssl-devel-y./configure--prefix=/usr/local/lnmp/nginx--with-http_ssl_module--with-http_stub_status_module


12makemakeinstall
1

vim/root/

.bash_profile


1source/root/.bash_profile #使新更改的環境變數生效
123cd/usr/local/lnmp/nginx/sbin/./nginx-t #檢測檔案是否配置錯誤./nginx #啟動服務指令碼
1

curl-Ilocalhost #檢測http協議提供程式



wKioL1ddhFyy5JzYAACE8tJW_OM069.png

設定開機啟動

1

vim/etc/rc.local

wKioL1dxHbXxDJteAACGOdAjAa4024.png

在最後行新增nginx


1nginx-s
1nginx-h

遮蔽nginx的版本:


12rm-rf/root/nginx-1.8.0/usr/local/lnmp/nginx #把先前編譯安裝好的版本刪除tarzxfnginx-1.8.0.tar.gz #解包
1

vim/root/nginx-1.8.0/src/core/nginx.h #偽裝版本

wKiom1ddg77A-eGzAAAg9Ktyyz0879.png

將"nginx/"後面的刪除


1

vim/root/nginx-1.8.0/auto/cc/gcc #關閉debug除錯


wKiom1ddg-7CA67LAAAMH9dGgEc841.png

註釋掉debug模式


重新編譯:

cd nginx-1.8.0

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

make && make install

wKioL1ddhTKwWsMEAACB-6GGaVU912.png


nginx -t #檢測檔案配置

nginx -s reload #載入配置檔案


useradd -s /sbin/nologin/ -d v/usr/local/lnmp/nginx nginx #建立一個nginx使用者


vim /usr/local/lnmp/nginx/conf/nginx.conf

user nginx nginx #使用者和使用者組

worker_processes 2; #cpu程序數,不能超過本機的cpu數


events {

use epoll; #採用一步非阻塞模式,apache --select 同步阻塞機制 io服用模型型別

worker_connections 4096; #連線數

}


wKioL1ddhZWi9ffAAABWa7TR-nk485.png


開啟https:

wKiom1ddhFGDhX_vAABO7GtHmmM140.png


見server{}內的#去掉 在ssl_certificate和ssl_certificate_key後新增上cert.pem


cd /etc/pki/tls/certs/

make cert.pem


wKiom1ddhOqy2WcnAABwe7ma91w862.png


cp cert.pem /usr/local/lnmp/nginx/conf/

nginx -t

nginx -s reload


訪問瀏覽器:

wKiom1ddhQ3if5tTAACSs3bKYGI345.png



nginx 監控小外掛:

vim /usr/local/lnmp/nginx/conf/nginx.conf

新增以下內容

wKioL1ddhlWy9H0_AAANdVZI8_A849.png

nginx -t

nginx -s reload


訪問瀏覽器:形式ip/status

wKiom1ddhWGgSQqlAAAyBd91T4o896.png

nginx :負載均衡

server2server3做以下工作:

yum install httpd -y

cd /var/www/html/

echoserver2/3.example.com>index.html


vim /usr/local/lnmp/nginx/conf/nginx.conf


新增以下內容


wKiom1ddha7R0drUAAA8LlvkfB0367.png



nginx -t

nginx -s reload


測試:訪問瀏覽器

wKioL1ddh72wOuKwAABz9DbBLbA599.png

wKiom1ddhrXCketgAAB86u71Hxc855.png


nginx:虛擬主機


vim /usr/local/lnmp/nginx/conf/nginx.conf

新增以下內容

wKiom1ddha7R0drUAAA8LlvkfB0367.png

wKioL1ddh1OirihPAAA-ML6aGAA090.png


nginx -t

nginx -s reload


mkdir/web{1..2}

echo www.linux.org>/web2/index.html

echowww.unix.org > /web2/index.html

nginx-tnginx-sreload




測試:訪問瀏覽器


wKioL1ddhyPytSmcAAAlWkRJcoE535.png

wKiom1ddhhbxXUV7AAAmbgXttMo071.png








轉載於:https://blog.51cto.com/hgh1882928/1840909