Nginx雖然小,可是對開發來講開發起來並不簡單,是經過epoll模型實現的異步Webhtml
Nginx特色:方便,簡單靈活,佔用系統資源少,對靜態小文件處理好的Web服務軟件linux
1.Nginx是一個開源的,支持高併發的www服務和代理服務nginx
2.nginx具備高併發,特別是對靜態網頁,佔用系統資源少等特性web
3.nginx不可是一個優秀的web服務軟件,還具備反向代理負載均衡和緩存的服務功能。nginx部署及其方便。apache
nginx用戶是epoll模型(異步IO非阻塞模型),apache用的是select模型(同步IO阻塞模型)windows
1.先安裝支持包 yum -y install pcre-devel openssl-devel
2.解壓編譯包到/usr/src tar xf 安裝包 -C /usr/src
3.建立程序用戶 useradd -s /sbin/nologin -M www
4.進行編譯安裝 cd /usr/src/nginx
./configure --user=用戶名 --group=組 --prefix=指定目錄(如:/usr/local/nginx) --with-http_stub_status_module --with-http_ssl_module && make && make install
修改環境變量(作軟鏈接) ln -s /usr/local/nginx/sbin/* /usr/local/bin/
5.
6.從備份的配置文件中去了#號和空行重定向到配置文件中
精簡Nginx配置文件(去了報錯的行)
瀏覽器
首頁文件表示若是用戶只輸入域名,不輸入URi,就默認去找index.html和index.htm這兩個網頁(若是這兩個網頁也沒有,那就表示找不到了)緩存
一個web服務器搭建多個網站有三種方法:
1.基於不一樣域名的虛擬網站(工做中經常使用)
2.基於不一樣監聽端口的虛擬網站(能夠實現用IP去訪問多個域名)
3.基於不一樣IP的虛擬網站安全
1.先到配置文件中修改
2.從新啓動服務 /usr/local/nginx/sbin/nginx -s reload
平滑重啓,不影響正在鏈接的用戶
3.根據配置文件中的模塊去建立網頁文件,而且添加網頁內容
4.增長映射文件內容
5.用curl去檢測 curl www.yunjisuan.com
服務器
若是一個IP多個域名,客戶機用域名去訪問,服務機就能拿到它想要的,那麼服務端是怎麼知道客戶端的想要去訪問的哪一個域名呢?
web服務器能夠在用戶發送過來的報文中的頭部能夠查看用戶想看的具體域名
curl -v yunjisuan.com
查看報文內容
在同一個IP多個域名的狀況下,用IP去訪問網站默認給的是第一個虛擬網站,可是有時候是不能讓他去訪問的爲何??
由於DNS映射的過程有一個追蹤的過程,若是正常輸入域名解析IP,DNS提供服務的公司先要追查你的位置,若是是合法的用戶,才能解析成功而且正常訪問。而黑客絕對不會走正常解析過程,確定是用IP地址(經過IP地址訪問不經過DNS解析)過去的。所以要想個辦法讓非法用戶不能默認訪問第一個網站,因此要把網站作成防黑的
Tengine是淘寶開源Nginx的分支,官方站點爲http://tengine.taobao.org/
如:配置文件中默認的www.yunjisuan.com首頁是html下的index.html,然而這個index.html網頁文件卻不存在,當用戶在網頁上輸入域名進行訪問時,就會出現403報錯。
緣由:當用戶輸入www.yunjisuan.com訪問時,瀏覽器會自動把換成http://www.yunjisuan.com/,而它又找不到首頁網頁文件,因此就默認給用戶看/下的全部文件,這樣的話會被nginx的安全機制拒絕,因此就會出現403報錯
nginx默認的安全機制是開啓的,而apache默認的安全機制是關閉的
(1)特殊的403報錯
(2)訪問的網頁文件權限不夠(例如:設置的程序用戶爲www,而網頁文件權限爲700,屬主、屬組都爲root,這樣的話www用戶是沒有辦法進行訪問的,因此就會致使403錯誤) (3)訪問的網頁文件所在的目錄沒有x權限(如:程序用戶爲www,網頁文件所在的目錄爲www目錄,而www目錄權限爲744,屬主、屬組都爲root,這樣用戶對目錄沒有可執行權限,就進不去目錄。因此就致使403錯誤