nginx主要提供反向代理及負載均衡的能力,重定向報文代理及報文數據替換也是經常使用功能。(參考http://www.javashuo.com/article/p-nugcehza-ga.html)html
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
tasklist /fi "imagename eq nginx.exe" 查看進程是否啓動負載均衡
netstat -aon|findstr "80" 查看80端口ide
tasklist |findstr "pid" 查看PID對應的進程
taskkill /f /t /im 進程名imagename 結束進程
因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來管理
主配置文件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;
}
一、負載平衡,參考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; } }}