1. 程式人生 > >nginx的編譯,和簡單的配置問題

nginx的編譯,和簡單的配置問題

反向代理常見的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_connectiongs 
1024;(程序裡邊的執行緒數,預設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部分。
單獨寫/是模糊查詢,含有根就可以。是預設匹配是優先順序最低的。
~代表進行正則。*表示不區分大小寫正則匹配
^~是特殊的正則匹配,一旦加了這個後邊的的東西匹配優先順序搞過正則。