nginx在windows平臺下的使用筆記

nginx主要提供反向代理及負載均衡的能力,重定向報文代理及報文數據替換也是經常使用功能。(參考http://www.javashuo.com/article/p-nugcehza-ga.htmlhtml

1、經常使用命令

start nginx  nginx

nginx –s stop — fast shutdown 快速中止,可能並不保存相關信息git

nginx –s quit — graceful shutdown 完整有序的中止,並保存相關信息github

nginx –s reload — reloading the configuration file 配置信息修改,需從新載入配置web

nginx –s reopen — reopening the log files 從新打開日誌文件windows

nginx –v 查看Nginx版本服務器

注意:nginx的啓動有兩種方式,即1.start nginx和2.nginx.exe,但第二種cmd窗口一直處於執行狀態,沒法進行任何命令操做,建議使用方式1.start nginx來啓動。app

 

2、輔助命令

tasklist /fi "imagename eq nginx.exe"  查看進程是否啓動負載均衡

netstat -aon|findstr "80"  查看80端口ide

tasklist |findstr "pid"  查看PID對應的進程

taskkill /f /t /im 進程名imagename   結束進程

 

3、以windows services方式運行

因ngnix沒有提供服務運行的安裝方式,因此須要藉助以工具Windows Service Wrapper,下載版本http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/

詳細使用說明參考https://github.com/kohsuke/winsw/blob/master/doc/installation.md

另外一種方式是利用NSSM,詳看http://nssm.cc/

簡單使用樣例

一、將winsw.exe更名成nginx-service.exe

二、新建nginx-service.exe.config配置文件

<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
    <supportedRuntime version="v4.0" />
  </startup>
  <runtime>
    <generatePublisherEvidence enabled="false"/>
  </runtime>
</configuration>

三、新建nginx-service.xml服務配置文件

<service>
  <id>nginx</id>
  <name>Nginx Service</name>
  <description>High Performance Nginx Service</description>
  <executable>%BASE%\nginx.exe</executable>
  <stopexecutable>%BASE%\nginx.exe -s stop</stopexecutable>
  <workingdirectory>%BASE%\</workingdirectory>
  <startmode>Automatic</startmode>
  <delayedAutoStart/>
  <logpath>%BASE%\logs</logpath>
  <log mode="roll-by-time">
    <pattern>yyyyMMdd</pattern>
  </log>
</service>

四、安裝服務

以管理員身份運行cmd,進入ngnix目錄,輸入:nginx-service.exe install

五、管理服務

打開服務管理器進行服務的啓動、中止,或CMD下運行命令 net start/stop nginx來管理

 

4、配置說明

主配置文件nginx.confg分爲4部分,main(全局配置)、server(主機配置)、upstream(負載均衡服務器設置)以及location(URL匹配特定位置的設置),這四者的關係是:server繼承main,location繼承server,upstream既不會繼承其它設置也不會被繼承

配置項說明

worker_processes  開啓的線程數,通常跟邏輯CPU核數一致

upstream  設定負載均衡的服務器列表 支持多組的負載均衡,能夠配置多個upstream  來服務於不一樣的Server

upstream mysvr {
  #weigth參數表示權值,權值越高被分配到的概率越大  
  #1.down 表示單前的server暫時不參與負載
  #2.weight 默認爲1.weight越大,負載的權重就越大。    
  #3.backup: 其它全部的非backup機器down或者忙的時候,請求backup機器。因此這臺機器壓力會最輕。 
  #server 192.168.31.233  down;
  #server 192.168.31.233  backup;
  server 192.168.31.233:8087  weight=1;
  server 192.168.31.233:8088  weight=2;
}

 

5、配置場景

一、負載平衡,參考http://nginx.org/en/docs/http/load_balancing.html

 

例1

http {

    upstream backend {       
        least_conn;

        server webserver1 weight=1;
        server webserver2:80 weight=4;   
    }


    server {
        listen 80;

        location / {
            proxy_pass http://backend;
           
            # Rewrite the 'Host' header to the value in the client request
            # or primary server name
            proxy_set_header Host $host;

            # Alternatively, put the value in the config:
            #proxy_set_header Host www.example.com;           
        }
    }
}

例2

http {
     # Basic reverse proxy server
     upstream backend  {
           server 127.0.0.1:4433;
     }

     # *:80 -> 127.0.0.1:4433
     server {
            listen       80;
            server_name  example.com;
            ## send all traffic to the back-end
            location / {
                 proxy_pass        http://backend;                 proxy_redirect    off;                 proxy_set_header  X-Forwarded-For $remote_addr;            }    }}

相關文章
相關標籤/搜索