Nginx
是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。而tomcat只支持5百并发。
正向代理,需要在客户端配置代理服务器;
反向代理,客户端不需要做任何配置就可以访问,我们只需要发送请求到反向代理服务器,由反向代理服务器去选择目标服务器获取数据响应给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器的地址,隐藏了真实服务器的ip地址;
实质 个人理解反向代理就是nginx拦截动态请求之后转发给某个tomcat。这个在集群和分布式都可以使用这个来进行配置转发。
作用 隐藏真实的访问ip地址。我们可以看到流程图中我们访问的最多也就是公网的ip,但是具体tomcat在那个ip是不知道的,这样就能减少tomcat被攻击,提高了服务器的安全性。
将原本请求集中到单个服务器上的情况,改为配置多台服务器,然后将请求负载分发到配置的多台服务器上;
传统项目是否,把静态资源 html,css,js 和 动态资源 jsp,java代码全部部署到tomcat;
动静分离 把静态资源和动态资源分开部署到不同的服务器上,通过nginx配置来区分客户端请求该去请求那台服务器;
[root@TS-01-Linux7 /]# cd /usr/src/ [root@TS-01-Linux7 src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz [root@TS-01-Linux7 src]# wget --no-check-certificate http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz [root@TS-01-Linux7 src]# wget http://zlib.net/zlib-1.2.11.tar.gz [root@TS-01-Linux7 src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz 失败直接在浏览器下载;
2.1 解压 pcre
[root@TS-01-Linux7 src]# tar -xvf pcre-8.40.tar.gz
2.2 进入解压之后的目录,执行 ./configure
命令
2.3 没有异常在当前目录下执行下面命令
2.4 make && make install
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
[root@TS-01-Linux7 src]# tar -xvf nginx-1.20.2.tar.gz
进入解压目录 cd nginx-1.20.2
,执行命令 ./configure
执行命令 make && make install
成功后,会在/usr/local/ 下生产目录
开启 nginx
[root@TS-01-Linux7 sbin]# -ef | grep nginx
查看 nginx 进程,证明安装ok
进入 conf 目录下,打开 nginx.conf,可以在我们本机访问,访问失败的可以关闭防火墙或者开放端口在访问
firewall-cmd --zone=public --add-port=80/tcp --permanent
开放80端口
firewall-cmd --reload
重启防火墙
使用Nginx命令必须进入Nginx的目录下 /usr/local/nginx/sbin
查看nginx版本号
[root@TS-01-Linux7 sbin]# ./nginx -v nginx version: nginx/1.20.2
启动nginx
[root@TS-01-Linux7 sbin]# ./nginx [root@TS-01-Linux7 sbin]# ps -ef | grep nginx root 7944 1 0 09:49 ? 00:00:00 nginx: master process ./nginx nobody 7945 7944 0 09:49 ? 00:00:00 nginx: worker process root 7947 7907 0 09:49 pts/0 00:00:00 grep --color=auto nginx
关闭nginx
[root@TS-01-Linux7 sbin]# ./nginx -s stop [root@TS-01-Linux7 sbin]# ps -ef | grep nginx root 7941 7907 0 09:48 pts/0 00:00:00 grep --color=auto nginx
重新加载nginx
[root@TS-01-Linux7 sbin]# ./nginx -s reload
Nginx
配置文件由三部分组成
设置一些影响 nginx 服务整体运行的配置指令,主要包括配置运行 nginx 服务器的用户(组),允许生产的 worker process 数,进程 Pid 存放路径,日志存放路径和类型以及配置文件的引入等;
worker_processes
的值越大支持的并发量也越多
设置影响服务器与用户网络连接,常用的设置包括是否开启对多 worker process 下的网络链接,是否允许接收多个网络连接,每个 woker process 可以同时支持的最大连接数等;
默认配置,表示每个 worker process 支持的最大连接数为 1024
http 全局块配置的指令包括文件引入,MIME-TYPE 定义,日志自定义,连接超时时间,单连接请求数上限等;
例:访问 nginx 代理地址,跳转到我们 linux 安装的 tomcat8080 页面
修改 nginx 配置文件 将 IP 改为上图解析的 IP, 添加映射 IP
如果是在 nginx 开的时候修改的
ps -A | grep nginx
查看进程
kill -9 pid
杀掉进程,重启
访问域名,成功跳转到 tomcat 8080 页面
例:Nginx 监听 9001 端口:
访问 127.0.0.1:9001/edu/ 跳转到 127.0.0.1:8080
访问 127.0.0.1:9001/vod/ 跳转到 127.0.0.1:8081
例:访问 同一个 路径,负载均衡效果,将请求平均分发到 8080 和 8081 服务器上;
每个请求按照时间顺序逐一分配到不同的服务器上,如果后端服务器宕机了,就剔除掉;
weight 默认权重1,权重越高被分配的客户端就越多
# 负载均衡配置参数 upstream myserver { server ip:8080 weight=10; server ip:8081 weight=5; }
每个请求按访问 ip 的 hash 结果分配,这样每个访客访问固定一个后端服务器,可以解决 session 的问题;
# 负载均衡配置参数 upstream myserver { ip_hash; server ip.128:8080; server ip:8081; }
4.fair
按照后端服务器的响应时间来分配请求,响应时间短的优先分配;
# 负载均衡配置参数 upstream myserver { server ip:8080; server ip:8081; fair; }
常用的方式把静态资源文件独立成单独的域名,放在独立的服务器上,另外一种把静态和动态资源混合放在一起,通过 Nginx 来分开;
实例:让 Nginx 分别指向不同的资源
location /www/ { root /data/; index index.html index.htm; expires; // 设置缓存时间 } location /img/ { root /data/; autoindex on; }