一、安装
apt update
apt install nginx
安装后:
二进制文件目录:/usr/sbin/nginx
主配置文件目录:/etc/nginx/nginx.conf
二、命令
启动:nginx
停止:nginx -s stop
优雅退出:nginx -s quit
重新加载配置文件:nginx -s reload
除此之外:还可以对master或worker 进程发送信号,来达到更多样的控制:
https://nginx.org/en/docs/control.html
三、反向代理
在8001和8002分别启动一个web服务器
go run user.go
go run server.go
修改nginx配置文件,添加一个server块
通过访问http://www.pxf.com/user 和http://www.pxf.com/file 就能将请求分别转发到8001 和 8002服务器上。
nginx -s reload
修改windows hosts文件,路径:C:\Windows\System32\drivers\etc\hosts,添加nginx所在服务器ip地址与域名www.pxf.com 的映射。
现象:
到此反向代理演示完成。
四、负载均衡
基本配置
在8001和8002启动路由相同服务
修改nginx配置文件,添加upstream块,并添加8001 8002服务的地址;添加server块,
使用端口81代理两个服务。
nginx -s reload
现象,访问相同的URL,nginx会将请求均衡的分发到两个服务器。
第一次访问www.pxf.com:81/file
第二次访问www.pxf.com:81/file
2.负载均衡算法
轮询(默认)
说明:nginx 假定所有服务器性能都相同,会将请求平均分配到所有服务器。
upstream myservers {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
b.加权轮询
说明:是轮询的扩充,权重越大,服务器承受的请求越多。
upstream myservers {
server 127.0.0.1:8001 weight=1;
server 127.0.0.1:8002 weight=3;
}
c. ip_hash
说明:根据客户端ip进行hash,如果在服务器上存有session,需要使用这种方式。
upstream myservers {
ip_hash;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
d. least_conn;
说明:如果一些请求很耗时,那么nginx会将新的请求发送到不是很繁忙的服务器上。
upstream myservers {
least_conn;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
到此,负载均衡介绍完毕
五、动静分离
1.创建文件夹/data/html 、 /data/images
2.更改nginx配置文件
server {
listen 82;
server_name www.pxf.com;
location / {
root /data/html;
}
location /images {
root /data;
}
location /x {
alias /data/images;
}
}
3.现象
访问网页 http://www.pxf.com/index.html
访问图片http://www.pxf.com/images/1.png 或 http://www.pxf.com:82/x/1.png
4.root与alias区别
location /x {
alias /data/images;
}
location /images {
root /data;
}
root 将URL添加到root 下,如请求为:/images/a/b 则真实资源地址为:/data/images/a/b
alias 顾名思义就是别名而已,如请求为:/x/a/b 则真实资源地址为:/data/images/a/b