此篇文章为记录Windows环境下安装与使用Nginx的过程,对其中的原理描述可能不够详尽,仅为记录,后续有更深入的了解将进一步更新,若有误导或解释不够的地方,再请不吝赐教.
1. 环境准备
(1)Nginx:下载地址 http://nginx.org/en/download.html,多个版本可供选择,我测试时选择的是1.9.9版,若在生产环境正式运行,建议选择稳定版本Stable version,后续我也将使用稳定版本进行测试.
(2)测试站点准备:具体过程不做说明,鉴于我的预期目标是负载均衡,所以我准备了两个测试站点,地址分别为http://192.168.18.117:111与http://192.168.18.117:222
2. Nginx安装与配置
2.1 Nginx安装
解压Nginx的zip档,放到服务器的C盘根目录下,实际上放置的路径没有特别要求,因为我的测试服务器只有C盘,方便起见我直接放C盘根目录,解压后无需安装.解压后如图所示.
双击运行nginx.exe后黑框一闪而过,从资源管理器可以看到两个nginx进程,即开启成功.
2.2 Nginx目录结构与配置文件说明
重要目录说明:
- conf 存放配置文件
- html 存放网页文件
- logs 访问的记录及error log
配置文件说明:
配置文件路径位于config/nginx.conf,Nginx的注释符号是#.
默认的配置文件及说明如下,已去除注释部分.
worker_processes 1; #允许生成的进程数,默认为1
events {
worker_connections 1024; #每个进程的最大连接数
}
http {
include mime.types; #实现对配置文件所包含的文件的设定
default_type application/octet-stream; #设定默认类型为二进制流
sendfile on; #用于开启高效文件传输模式
keepalive_timeout 65; #用于设置客户端连接保持活动的超时时间
server {
listen 80; #监听端口默认为80
server_name localhost; #主机头(域名)
location / { #/为匹配地址
root html; #虚拟主机的本地目录
index index.html index.htm; #默认首页的顺序
}
error_page 500 502 503 504 /50x.html; #定义错误页面
location = /50x.html {
root html;
}
}
}
3. Nginx常用指令
nginx -s stop 强制关闭
nginx -s quit 安全关闭
nginx -t 检查配置文件是否正确
nginx -s reload 改变配置文件后重新加载配置,不需要重启nginx
nginx -s reopen 打开日志文件
4. Nginx反向代理
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost:59637; #请求转向的地址
}
5. Nginx负载均衡
- 添加upstream模块配置,位于http节点下
upstream myweb { #定义反向代理的服务群组
server 192.168.18.117:111 weight=1; #服务器A的地址,weight代表权重
server 192.168.18.117:222 weight=1; #服务器B的地址
}
- 修改location模块配置
location /{
root html;
index index.html index.htm;
proxy_pass http://myweb; #指向upstream配置
}
到此为止便是设置了简单的网站负载平衡,但实际应用中的状况会复杂许多,比如集群网站间的session共享,或是nginx服务器挂掉的应对方案,后续将展开更详细的记录.