nginx是一个静态http服务器
可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。
配置:
server {
listen 80; # 端口号
location / {
root /usr/share/nginx/html; # 静态文件路径
}
}
nginx就是一个高性能的http服务器及反向代理服务器
用户本来可以直接访问网站的服务器,但是如果网站的访问量过大,就会用到nginx。
加上nginx后,客户端不能直接访问服务器,客户端要请求nginx,然后nginx请求应用服务器,将结果再返回给客户端。此时的nginx就是反向代理服务器。
反向代理服务器配置:
server {
listen 80;
location / {
proxy_pass http://192.168.20.1:8080; # 应用服务器HTTP地址
}
}
客户端能直接访问网站的服务器,为什么要多此一举?就是因为nginx的功能强大。
nginx的作用:
- 负载均衡:这是在用户访问量过大的情况下。 将大量用户的请求分配给多台机器处理,使网站速度不至于因用户访问量过大而造成卡顿,并且若有一台服务器挂掉,其他服务器还能继续运行,其余服务器可以继续处理数据。
upstream myapp {
server 192.168.20.1:8080; # 应用服务器1
server 192.168.20.2:8080; # 应用服务器2
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
- 虚拟主机:访问量过小的情况下。 有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。
虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的
配置:
server {
listen 80 default_server;
server_name _;
return 444; # 过滤其他域名的请求,返回444状态码
}
server {
listen 80;
server_name www.aaa.com; # www.aaa.com域名
location / {
proxy_pass http://localhost:8080; # 对应端口号8080
}
}
server {
listen 80;
server_name www.bbb.com; # www.bbb.com域名
location / {
proxy_pass http://localhost:8081; # 对应端口号8081
}
}