nginx的編譯,和簡單的配置問題
阿新 • • 發佈:2018-11-02
反向代理常見的lvs、haproxy。
快取服務常見的。squid。vanish。常見的前端快取。
Apache是多程序的web伺服器,Nginx是多執行緒的web伺服器。
Nginx的特點,對靜態能力強,遠勝Apache。對動態的沒有Apache好。
Nginx小,方便簡單靈活,比較具有發展潛力的軟體,在效能上比Apache佔用資源更少,對靜態的處理更少,
Nginx的特性。是開源的,支援高併發的,高效能的,資源消耗少。
Nginx的三大功能
可以充當web服務
反向代理。(可以充當負載均衡,)
可以當快取服務
Nginx的網路模型是同過非同步io的模型epoll實現的
select是同步i/o阻塞網路模型。epoll是非同步i/o非阻塞模型
編譯,先安裝支援包 pcre-devel OpenSSL-devel 建立程式使用者Nginx。 編譯的時候指定按照模組./configure --user=nginx --group=nginx --prefix=/usr/local/nginx-1.10.2/ --with-http_stub_status_module --with-http_ssl_module
修改對映檔案 vim /etc/hosts
修改Nginx的配置檔案
vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;(工作的程序數,一般工作中伺服器有幾核就寫幾,最多不超過2倍) events {(時間函式) worker_connectiongs1024;(程序裡邊的執行緒數,預設1024,一般我們寫成他的20倍,極限65535) } http{ include mime.types; default_type application/octet-stream;(預設的型別) sendfile on;(開啟Nginx的高效傳輸功能) keppalive_timeout 65;(連線保持時間時間秒為單位,好處會減低三次握手的額外開銷,tigoa) server{ (一個server就帶表一個網站) listen 80;(監聽的埠) server_name localhost;(域名) location / { root html;(代表網頁目錄是從哪裡開始的。是想對路徑,相對於Nginx的安裝目錄) index index.html index.htm;(索引,只的目錄時那個。) } } } ```
一個伺服器搭建多個網站
有3種方法。
1.基於不同域名的虛擬網站
2.基於不同埠的虛擬網站
3.基於不同ip的虛擬網站
想要阻止非法使用者的訪問,需要在新開一個web頁面的配置
``` server{ listen 80 default_server; server_name _; location / { return 404; } } ```
狀態資訊也開啟
``` server{ listen 80; server_name status.yuming.com; stub_status on;(開啟健康狀態) access_log off;(不開啟日誌) allow ip地址;(只容許什麼地址檢視) deny all;(拒絕一起連線) } ```
開啟錯誤日誌不要在函式裡寫,
error_log logs/error.log;
命令curl是模仿URl的,
引數-v能看詳細的過程。
location 是Nginx裡邊非常重要的函式,可以同過正則表示式來過濾不同的URL裡的uri部分。匹配到不同的uri進入到不同的location裡也就可以看到不同的網頁了
所以我們要明白如何過濾,和過濾的優先順序。精確匹配>特殊正則>正則匹配>字串匹配>預設匹配。
匹配是字首匹配。
"="是精確匹配,不能有別的部分。只匹配uri部分。
單獨寫/是模糊查詢,含有根就可以。是預設匹配是優先順序最低的。
~代表進行正則。*表示不區分大小寫正則匹配
^~是特殊的正則匹配,一旦加了這個後邊的的東西匹配優先順序搞過正則。