Nginx 簡單記錄

Nginx("engine x")是一款是由俄羅斯的程序設計師Igor Sysoev所開發高性能的 Web和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器。官方測試可以支持5W併發鏈接,資源消耗低且穩定

 

 正向代理

客戶端和目標服務二者之間經過代理間接鏈接。客戶端只需向代理服務器發起請求,並指定本身的目標服務(進行一些設置),由代理轉交給指定的目標服務,
同時目標服務器返回的內容轉接給代理,由代理返回給客戶端,此時目標服務不知道請求的客戶端是誰。

 反向代理

和正向代理相反,客戶端並不能知道反向代理的存在,本身請求的代理服務器對於客戶端來講就是本身的目標服務(代理對外表現爲目標服務器),客戶端不須要進行特別的任何設置就能夠反問,由代理決定
向哪臺服務器轉交請求(轉接真實服務器)。html

 總的說:nginx

一個是代理客戶端,爲客戶端收發請求,使真實客戶端對服務器不可見。
一個是代理服務器,爲服務器收發請求,使真實服務器對客戶端不可見。

 負載均衡

Nginx的應用就是實現負載均衡,nginx扮演了反向代理服務器的角色, 將請求數量按照必定的規則進行分發到不一樣的服務器處理的規則,就是一種均衡規則服務器

 下載安裝

官網:https://nginx.org/en/download.html, 下載window版本網絡

 啓動nginx:併發

1) 直接雙擊該目錄下的nginx.exe,便可啓動nginx服務器app

2) 命令行進入該文件夾,執行nginx命令,也會直接啓動nginx服務器負載均衡

如:性能

D:/resp_applicationinx-1.13.5> nginx 

關閉nginx:測試

1) 強制中止nginx服務器,若是有未處理的數據,丟棄
D:/resp_applicationinx-1.13.5> nginx -s stop
2) 優雅的中止nginx服務器,若是有未處理的數據,等待處理完成以後中止
D:/resp_applicationinx-1.13.5> nginx -s quit 

 常見配置

配置文件目錄:conf/nginx.confui

配置說明:

......                              # 用於進行nginx全局信息的配置

events {                            # nginx工做模式配置

}

http {                              # http設置
    ....

    server {                        # 服務器主機配置
        ....
        location {                  # 路由配置
            ....
        }

        location path {
            ....
        }

        location otherpath {
            ....
        }
    }

    server {
        ....

        location {
            ....
        }
    }

    upstream name {                    # 負載均衡配置
        ....
    }
}

配置實例:

########### 每一個指令必須有分號結束。#################
#worker_processes 2;            #容許生成的進程數,默認爲1能夠等於CPU核心數
#pid /nginx/pid/nginx.pid;      #指定nginx進程運行文件存放地址
error_log log/error.log debug;  #制定日誌路徑,級別。這個設置能夠放入全局塊,http塊,server塊,級別以此爲:debug|info|notice|warn|error|crit|alert|emerg
events {
    accept_mutex on;            #設置網路鏈接序列化,防止驚羣現象發生,默認爲on  multi_accept on; #設置一個進程是否同時接受多個網絡鏈接,默認爲off
    #use epoll;                 #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;   #最大鏈接數,默認爲512
}
http {
    include       mime.types;                 #文件擴展名與文件類型映射表
    default_type  application/octet-stream;        #默認文件類型,默認爲text/plain
    #access_log off;                       #取消服務日誌    
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定義格式
    access_log log/access.log myFormat;            #combined爲日誌格式的默認值
    sendfile on;                                        #容許sendfile方式傳輸文件,默認爲off,能夠在http塊,server塊,location塊。
    sendfile_max_chunk 100k;                            #每一個進程每次調用傳輸數量不能大於設定的值,默認爲0,即不設上限。
    keepalive_timeout 65;                               #鏈接超時時間,默認爲75s,能夠在http,server,location塊。 
    upstream mysvr {   
      server 127.0.0.1:7878 weight=1;
      server 127.0.0.2:7878 weight=2;     #weight表示權值,越高分配的機率越大
server 127.0.0.3.7878 down; #down 表示主機暫停服務 } error_page
404 https://www.baidu.com; #錯誤頁 server { keepalive_requests 120; #單鏈接請求上限次數。 listen 4545; #監聽端口 server_name 127.0.0.1; #監聽地址 location ~*^.+$ { #請求的url過濾,正則匹配,~爲區分大小寫,~*爲不區分大小寫。 #root path; #根目錄 #index vv.txt; #設置默認頁 proxy_pass http://mysvr; #請求轉向mysvr 定義的服務器列表 必須和upstream 後面的名字同樣 deny 127.0.0.1; #拒絕的ip allow 172.18.5.54; #容許的ip } } }

 簡單示例

訪問127.0.0.1:8001  被轉向了預先部署好的2個站點 127.0.0.1:8022  和127.0.0.1:8033

 

相關文章
相關標籤/搜索