本文内容包括:
1、nginx是什么: nginx是一个高性能的服务器,占用内存少,并发能力强。
2、反向代理:
其实正向代理和反向代理就是代理的对象不同,正向是代理客户端,反向是代理服务端。
3、负载均衡: 说负载均衡前先说说我们自己撸的代码发布到tomcat然后通过浏览器访问是怎么样的一个过程。我们通过客户端请求服务端,服务端跟数据库交互,将数据返回服务端,服务端最后响应客户端。这种方式适合系统业务复杂度较低,请求量不大的情况。如果并发请求特别多,服务器是顶不住的,就会由于服务器性能瓶颈出现问题。解决办法就是一只汤姆猫拉不动了就多叫几只猫。
负载均衡示意图
4、动静分离: 静态资源是固定的不变的,比如js、css、jpg等,动态资源就是要与数据库交互的,比如servlet、jsp之类的。未做动静分离的时候,不管是动态资源还是静态资源,我们都放到同一只汤姆猫上,这样它负担也挺大的;做了动静分离,就是把动态资源放到汤姆猫上,静态资源放到另外一台服务器上,然后客户端请求通过nginx,由nginx来决定是访问动态服务器还是静态服务器,这样就降低了单台服务器的压力。
1、安装nginx:
pcre-devel、openssl-devel、gcc
和zlib-devel
。用 yum install make
安装即可。./configure
,出现下图才表示configure成功了。
configure成功
make&&make install
,如下图所示则安装成功了。安装完后在/usr/local
目录中,会有一个nginx
目录,启动脚本在nginx/sbin
中。
安装成功
/usr/local/nginx/sbin
目录中,执行./nginx
,就启动了nginx,浏览器访问你Linux机器的ip,出现下图就表示启动成功。如果访问不了,注意防火墙是否开放了80端口。
nginx启动成功
2、nginx常用命令:
以下列举的命令都是在/usr/local/nginx/sbin
下执行的。
./nginx
:启动nginx./nginx -s stop
:快速关闭nginx,可能不保存相关信息./nginx -s quit
:平稳关闭nginx,保存相关信息./nginx -s reload
:重新加载配置文件./nginx -s reopen
:重新打开日志文件./nginx -c filename
:为nginx指定一个配置文件./nginx -t
:检查配置文件的配置是否有语法错误./nginx -v
:查看nginx的版本./nginx -V
:查看版本以及配置参数等3、nginx的配置文件:
配置文件的位置:/usr/local/nginx/conf
下的nginx.conf
。配置文件分为三部分,全局块、events块和http块。
配置文件
worker_processes 1
表示nginx处理的并发数量,值越大,能处理的并发量就越多。worker_connections 1024
表示支持的最大连接数。1、最终效果: 在浏览器上输入www.xixihaha.com,跳转到tomcat的主页面(所以要先安装一个tomcat并启动;或者也可以搞个springboot项目丢上去启动)。因为用到了域名,所以要在windows的host文件中配置域名与虚拟机ip的映射(域名的工作原理就是先看host文件中有没有映射,没有就通过DNS服务器去解析域名)。
2、进行配置: 首先将server_name改成虚拟机的IP,然后在location那里设置代理的域名和端口,这样就搞定了。
配置反向代理
3、代理多个端口: 上面是将www.xixihaha.com的请求转发到8080端口了,现在像将www.xixihaha.com/xi的请求转发到8081端口,www.xixihaha.com/ha的请求转发到8082端口。
server {
listen 80;
server_name www.xixihaha.com;
location ~ /xi/ {
proxy_pass http://127.0.0.1:8081;
}
location ~ /ha/ {
proxy_pass http://127.0.0.1:8082;
}
}
注意一个配置文件里可以写多个server,这个server和刚才配置的转发到tomcat欢迎页的可以同时存在。这个server配置location的时候用的类似于正则表达式,~ /xi/就表示路径中有xi的就转发到8081端口。
~ 包含该字符串就匹配,区分大小写
~* 包含该字符串就匹配,不区分大小写
= 完全相同才匹配
^~ 匹配不包含正则的且匹配度最高的location
反向代理
1、准备工作: 上面说了负载均衡就是将多个请求分配给不同的服务器,减轻单一服务器的压力。现在我们先在8081和8082的tomcat的webapp目录下新建一个文件夹test,里面都放一个index.html(实际上这两个index.html是完全一样的,就是代表我们需要做负载均衡的项目,这里为了等下可以更好的看到效果,这两个html可以做一些标记,比如8081的就标记一下8081)。