Nginx的应用场景
1、http服务器。
Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。
可以实现在一台服务器虚拟出多个网站。其中虚拟机的可以通过端口或者域名区分
2.1、端口区分虚拟机:通过不同的端口号可以访问到一个ip中不同的虚拟机网站
(1)在nginx.conf文件中添加一个Server节点,修改端口号。
server { listen 81; server_name localhost; location / { root html81; index index.html index.htm; } } |
(2)在/usr/local/nginx/中复制html文件夹并修改名称为html81,重启nginx服务。
2.2、域名区分虚拟主机:通过不同的域名,访问一个nginx中的虚拟机
(1)需要修改nginx.conf配置文件
server { listen 80; server_name www.test1.com; location / { root html-test1; index index.html index.htm; } } server { listen 80; server_name www.test2.com; location / { root html-test2; index index.html index.htm; } } |
(2)模拟域名区分虚拟机,可以通过修改etc/host文件指定域名的ip地址,指定后的域名就不需要再通过DNS服务器解析了(也称为的host劫持)
(如:
192.168.1.1 www.test1.com
192.168.1.2 www.test2.com
)
(3)然后复制html文件夹并更改名称为html-test1和html-test2,修改配置后需要重新加载配置文件。
3、反向代理,负载均衡。
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
也就是说,把nginx用作反向代理服务器,放在pc机和网页服务器之间,pc机发出的命令到达反向代理服务器时,由反向代理服务器选择,再转发回给pc机。
3.1反向代理
反向代理,其实就是请求转发,在前后端分离项目中,可以解决跨域问题,很简单,在本机调试时可以如下配置
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080/项目名;
}
}
1.1.2 负载均衡
只需要在upstream的server后面添加一个weight即可代表权重。权重越高,分配请求的数量就越多。默认权重是1
upstream tomcats{
server 192.168.1.1:8080 weight=2;
server 192.168.1.1:8081;
}
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass http://tomcats;
index index.html index.htm;
}
}