Windows nginx安装以及负载均衡配置
nginx windows解压版下载
下载地址:https://nginx.org/en/download.html
nginx安装为Windows服务
-
将nginx安装为Windows服务需要借助“Windows Service Wrapper”工具
下载地址: https://github.com/winsw/winsw/releases/tag/v2.12.0, 根据操作系统版本选择安装32位和64位
-
将下载好的WinSW-x64.exe更名为nginx-service.exe,同时创建同名nginx-service.exe.config文件和nginx-service.xml文件
-
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> <logpath>D:\InstallPack\nginx-1.16.1\logs</logpath> <log mode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log> <executable>D:\InstallPack\nginx-1.16.1\nginx.exe</executable> <startarguments>-p D:\InstallPack\nginx-1.16.1</startarguments> <stopexecutable>D:\InstallPack\nginx-1.16.1\nginx.exe</stopexecutable> <stoparguments>-p D:\InstallPack\nginx-1.16.1 -s stop</stoparguments> </service>
-
以管理员身份运行 cmd,运行如下命令安装windows服务
nginx-service.exe install
-
开启和关闭nginx服务的命令行如下
nginx-service.exe start #启动Windows服务 nginx-service.exe stop #停止Windows服务
负载均衡配置
例如:现在需要负载均衡的两台机器分别为192.168.3.3:8080和192.168.3.4:8080,配置文件如下
http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #gzip on; upstream backend { server 192.168.3.3:8080; server 192.168.3.4:8080; } server { listen 8080; server_name localhost; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 1; proxy_read_timeout 1; proxy_send_timeout 1; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
这段配置定义了一个名为 backend 的上游(upstream)块,包含了三个后端服务器。proxy_pass 指令用于将请求转发到这个上游组
负载均衡策略
Nginx 支持多种负载均衡策略,如轮询、权重、IP 哈希等。以下是一些示例配置:
-
轮询(默认):
upstream backend { server backend1.example.com; server backend2.example.com; }
-
权重(Weighted):
upstream backend { server backend1.example.com weight=3; server backend2.example.com weight=1; }
-
IP 哈希(IP Hash):
upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; }
-
健康检查:
Nginx 支持基本的健康检查,可以使用
max_fails
和fail_timeout
参数:upstream backend { server backend1.example.com max_fails=3 fail_timeout=30s; server backend2.example.com max_fails=3 fail_timeout=30s; }
这段配置意味着如果某个服务器在30秒内失败超过3次,将在30秒内被认为是不可用的。