nginx start on macos
sudo nginx
where the conf file at
nginx 最出色的能力就是反向代理
- 即nginx对客户端的请求转发到别的服务器功能,
其实正向代理和反向代理在功能实现上没有什么区别 - 做文件服务器,静态页面服务器…
配置文件nginx.conf
- worker_processes 顶级main部分,代表worker角色的工作进程个数
- error_log
- pid 进程文件
- events 包含,还有很多像events这样的节点有子包含的 worker_connections 每个worker进程
能发起的连接数 - include 是引用一些nginx内置模块,如
include mime.types;
引入文件扩展名和文件类型映射 - default_type 默认文件类型,在http包含下
- server 包含很重要,有listen, server_name,location(url映射),…
server{
# url 是/ , 也可正则匹配url访问路径
location / {
#proxy_pass http://mysvr # 当请求/时,请求转发到http://...下,相当于重定向
root html; #不太明白,应该是后缀名的意思
}
}
nginx 实现作为静态html页面的服务器,可以很好的展示一些不必要跟数据库打交道的html文件
- 这个应用很不错,主要是在html目录下放置.html文件和配置nginx.conf就行,还是能实现的
nginx 实现均衡负载
- 负载均衡算法
- upstream配置,这个配置是写一组被代理的服务器地址,然后配置负载均衡算法(也就是访问
哪个代理服务器的算法)
upstream mysvr{
server 192.168.10.121:3333;
server 192.168.10.122:3333;
server 192.168.10.123:3333 backup; #热备
server 127.0.0.1:7878 weight=1; # 权重为1,记这个地址为A
server 192.168.10.133:7878 weigth=2; # 2,B
ip_hash;
}
server {
location ~*^.+$ {
proxy_pass http://mysvr; #调用上面的upstream name,然后找ip地址访问
}
}
- 热备,就是当你有两台服务器,当一台服务器不可用了,才启用第二台服务器提供服务(否则不会启用),服务器的处理
请求顺序: call: AAAA… (A not work) BBBBB… 如上面的backup
- 轮询,按权重轮流访问服务器地址,则访问方式为:ABBABBABB…
- ip_hash 会让相同ip的客户端请求同一个服务器
- 状态参数:除了weight还能有
down,backup,max_fails,fail_timeout
,对应上面的upstream mysvr包含的
server值
配置文件再细入
- 重要的几块:全局块(pid存放路径…),events块,http块,server块,location块