nginx來源:css
是一款由俄羅斯程序員Igor Sysoev所開發輕量級的網頁服務器、反向代理服務器以及電子郵件(IMAP/POP3)代理服務器。起初是供俄國大型的門戶網站及搜索引擎Rambler(俄語:Рамблер)使用。
此軟件BSD-like協議下發行,能夠在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操做系統中運行。
nginx 主要功能:
1.處理靜態資源
2.反向代理
3.負載均衡
4.訪問控制
(一)處理靜態資源
假如如今我有一臺雲服務器,我想在雲服務器上掛在一個頁面
以下簡易頁面 index.html
<html> <head> <title>個人服務頁面</title> </head> <body> <div>.....</div> </body> </html>
一般兩種方法
方法一 在本身的服務器安裝個tomcat把頁面配置到容器的服務裏。便可訪問。
具體操做 vi serser.xml
在Engine 節點下添加
<Host name="www.sam.com"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="www.sam.com_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="/home/本身的須要配置的頁面" /> </Host>
這是一種方式,固然還有其餘的配置方式。能夠參考別人
方法二 使用nginx
http {
include mime.types;
default_type application/octet_stream;
sendfile on;
server {
listen 80;
server_name localhost;
location /page {
root /html/login
}
location /page {
alias /html/desplay/
}
}
}
(二)反向代理html
什麼是反向代理?nginx
正向代理: 代理端是客戶端
反向代理: 代理端是服務端
正向代理影藏的是客戶端,反向代理影藏的是服務端。
額外話題 "越域" 與 "跨域"
產生越域的條件:
1. 請求協議不一樣 http -> https 或者 https -> http
2. 域名不一樣
3. 不一樣的端口
反向代理能夠很簡單的以爲由於端口致使的越域問題。具體使用以下:
server {
listen 80;
location /api {
proxy_pass http://localhost:8808;
}
}
此外由於協議的不一樣致使的越域問題 本人也不知道怎麼解決,至於第二個 域名的不用 這種狀況的跨域 須要在請的請求前 加個添加個head 請求頭,具體如何操做看我之後的博客謝謝。
(三)負載均衡
當一個網站的訪問量足夠大的時候,須要增長服務的訪問性能,升級服務器性能和增長內存的方式,當用戶足夠多的時候須要增長主機了。
負載均衡就是 多態服務器組成一個組,完成相同的功能的服務,當用戶訪問時能夠根據每臺服務的狀態完成不一樣的用戶請求。
假設 如今我有四臺主機 112.12.123.1 , 112.12.123.2 , 112.12.123.3 。 112.12.123.4 實現以下:
upstream myservers {
server 112.12.123.1:8080 weight = 2;
server 112.12.123.2:8080 weight = 3;
server 112.12.123.3:8080 down;
server 112.12.123.4:8080 backup;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
location / {
root /data/page;
}
lcoation /css {
alias /data/css/;
}
location /api {
proxy_pass http://myservers;
}
}
}
upstream內置了三種負載均衡策略,分別是:
round-robin,輪循(默認)程序員
Nginx根據請求次數,將每一個請求均勻分配到每臺服務器算法
least-connected,最少鏈接apache
將請求分配給鏈接數最少的服務器。Nginx會統計哪些服務器的鏈接數最少。api
ip-hash跨域
綁定處理請求的服務器。第一次請求時,根據該客戶端的IP算出一個HASH值,將請求分配到集羣中的某一臺服務器上。後面該客戶端的全部請求,都將經過HASH算法,找到以前處理這臺客戶端請求的服務器,而後將請求交給它來處理。 在這裏,咱們沒有指定負載均衡策略,那麼它就是默認的round-robin。tomcat
weight?服務器
經過指定每臺服務器的權重,咱們能夠進一步影響nginx的負載均衡算法 在上面的示例中,若是未配置服務器權重,這意味着全部指定的服務器都被視爲具備同等資格的特定 負載平衡方法。 注意,weight只能用在round-robin策略中
其他的一些配置
backup
將服務器標記爲備份服務器。它將在主服務器不可用時處理請求。
down
將服務器標記爲永久不可用。
(四)訪問控制
訪問控制說白了就是和白名單,黑名單差很少。這裏空的是ip地址。
具體配置以下:
location / {
allow 121.237.63.233;
allow 121.237.63.220;
deny all;
}
allow和deny這兩個指令的意思是指,容許ip和限制ip ,all 表示全部。
nginx 經常使用命令
找到本身安裝目錄 nginx/sbin 路徑下來
啓動 ./nginx
中止 ./nginx -s stop
重啓 ./nginx -s reload