1.主要內容:
nginx的基礎
特性配置部署
優化(了解)
2.nginx 是什麼?
nginx是乙個開源的,支援高效能,高併發的www服務和**服務軟體---web服務軟體。
它是由俄羅斯人igor sysoev 開發的,
優點:
效能:占用的系統資源更少,3萬併發開啟10個執行緒小號記憶體200mb
支援更多的併發連線,幾萬併發小事情
達到更高的訪問效率
支援非同步網路i/o事件模型epoll(linux 2.6+)
功能:優秀的web服務軟體,支援反向**負載均衡及快取服務
**軟體有:lvs, haproxy等軟體,為什麼選擇呢?
nginx部署更簡單,方便啊
快取:他又類似squid等快取服務軟體(很少用)
利用自身的proxy_cache 模組實現類squid等專業快取功能
安裝配置:更方便,簡單,靈活
支援的作業系統:
unix,linux, bsd, mac os x, solaris, microsoft等作業系統
常用的組合環境:lnmp 或lemp(e 取自nginx的engine x)
2023年web服務軟體排名:
1.apache 32.40%
2.nginx 14.29%
3.microsoft [laɪt] [spiːd] 31.65%
4.google servers 2.07%
5.tomcat 0.4%
3.nginx的基本特性
a)可針對靜態資源高速高併發訪問及快取
b)可使用反向**加速,並且可進行資料快取。
c)據有簡單負載均衡、節點監控檢測和容錯功能
d)支援fastcgi服務的快取加速
cgi全稱是「公共閘道器介面」(common gateway inte***ce),
http伺服器與你的或其它機器上的程式進行「交談」的一種工具,
其程式一般執行在網路伺服器上。
cgi可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變數。
如php,perl,tcl等。
相對於cgi來說fastcgi有兩點是和其不同的。
第一點是fastcgi的程序是永久性的,也就是說用於處理請求的程序隨著請求的結束並不會退出,而是繼續執行等待有新的請求來處理。
這樣就解決了cgi由於頻繁的建立和關閉程序所帶來的效能問題;
第二點是fastcgi和web伺服器之間的通訊方式是和cgi不同的。
並且通訊時全雙工的模式
f)支援fastcgi, uwsgi, scgi, memcached servers的加速和快取
g)具有模組化的架構
4.nginx所具有其他的www服務特性:
a)支援基於名字,埠及ip的多虛擬主機站點
b)支援keep-alive和pipelined連線
c)可進行簡單,方便,靈活的配置和管理
d)支援修改nginx配置,並且在**上線時,可平滑重啟
平滑重啟:
nginx 執行新的工作程序並從容關閉舊的工作程序,通知工作程序關閉監聽套接字,
但是繼續為當前連線的客戶提供服務
所有的客戶端的服務完成後,舊的工作程序被關閉
e)可自定義訪問日誌格式,臨時緩衝寫日誌操作,快速日誌輪詢及通過rsyslog處理日誌
f)可利用訊號控制nginx程序
g)支援rewrite模組,支援uri重寫及正規表示式匹配
h)支援flv流和mp4流技術產品應用
i)支援http響應速率限制
j)支援同一ip位址的併發連線或請求數限制
k)支援郵件服務**
5.編譯安裝nginx環境:
1.準備工作:
1.檢視當前系統版本:
cat /etc/redhat-release --centos6.6
2.安裝nginx所需的pcre庫及一些包 --用途(為了使nginx具有uri重寫功能rewrite)
通常採用yum的方式:
配置yum源(採用網路源)
yum -y install openssl openssl-devel gcc gcc-c++
yum -y install pcre pcre-devel 檢視版本:rpm -qa pcre
3.選擇版本:
穩定版,開發版,歷史穩定版
首先穩定版(最新版晚6-10個月為佳)
4.為神馬安裝openssl-devel,因為https服務需要這個模組
什麼是https呢?
a)http叫超文字傳輸協議,使用tcp埠80,預設情況下資料是明文傳送的,
資料可以通過抓包工具捕獲到,因此在internet上,
有些比較重要的站點的http伺服器需要使用pki(公鑰基礎結構)技術來對資料加密!
這也就是https了;
b)https叫安全的超文字傳輸協議,使用tcp埠443,
他的資料會用pki中的公鑰進行加密,
這樣抓包工具捕獲到的資料報也沒有辦法看包中的內容,安全性大大提高,
要解密資料的話就要用到pki中的私鑰。
5.安裝
useradd nginx -s /sbin/nologin -m 建立nginx使用者並禁止此使用者登入系統
tail -1 /etc/passwd 檢視使用者是否存在
tar xf nginx-1.6.3.tar.gz -解壓
cd nginx-1.6.3 --進入解壓目錄
./configure 配置
--user=nginx 程序使用者許可權
--group=nginx 程序使用者組許可權
--prefix=/usr/local/nginx1.6.3 設定安裝路徑
--with-http_stub_status_module 啟用狀態資訊
--with-http_ssl_module 啟用ssl功能
make 編譯
make install 安裝
6.此時不算安裝完,需要啟動前檢查配置檔案語法
/usr/local/nginx1.6.3/sbin/nginx -t
7.啟動nginx服務
/usr/local/nginx1.6.3/sbin/nginx
8.檢視服務是否啟動成功,方法:檢視埠
lsof -i :80
netstat -lnt | grep 80
9.訪問127.0.0.1 | curl 127.0.0.1
10.總結:安裝容易出現的錯誤:
1.nginx: [emerg] getpwnam("nginx") failed
2.訪問不了頁面:
1.關閉selinux setenforce 0 --臨時關閉selinux的方法getenforce(檢視)
2.關閉防火牆 /etc/init.d/iptables stop --暫時關閉防火牆
3.檢視日誌:cat /usr/local/nginx1.6.3/logs/error.log
4.ping ip 和檢視埠
11. server
12.重啟服務
方法1:殺程序重啟
a)
殺程序
lsof -i :80
kill -9 pid
重啟/usr/local/nginx1.6.3/sbin/nginx
b)
ps -ef | grep nginx |awk ''| xargs kill -9
/usr/local/nginx1.6.3/sbin/nginx
方法2:配置檔案重啟
a)
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-c制定配置檔案的路徑,不加-nginx會自動載入預設路徑的配置檔案。
b)
/usr/local/nginx/sbin/nginx -t 檢查語法
/usr/local/nginx/sbin/nginx -h --檢視幫助
#-s signal : send signal to a master process: stop, quit, reopen, reload
/usr/local/nginx/sbin/nginx -s reload (reload如果語法錯誤不會成功,有時候不輸出錯誤)
c)
把nginx的啟動檔案放在/etc/init.d裡面
server nginx restart
chkconfig --add nginx ---意義是開機自啟動
Nginx 安裝及使用
wget 2 安裝依賴包 yum y install zlib zlib devel openssl openssl devel pcre pcre devel 3 建立組 groupadd r nginx 4 建立使用者 useradd r g nginx s sbin nologin d usr...
nginx安裝及使用
進入 usr local webserver nginx sbin,啟動指令碼在這個檔案下 配置在 usr local webserver nginx conf下的nginx.conf中 1 簡單方向 訪問192.169.43.188 80跳轉至192.168.43.114 8080 2 通過正規表...
Nginx安裝及使用
切換到root下安裝 centos su root ubuntu sudo su 切換資料夾 cd usr local src apt get install build essential apt get install libtool yum y install gcc automake aut...