Nginx
是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试Nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。而tomcat只支持5百并发。
1.反向代理
-
正向代理,需要在客户端配置代理服务器;
-
反向代理,客户端不需要做任何配置就可以访问,我们只需要发送请求到反向代理服务器,由反向代理服务器去选择目标服务器获取数据响应给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器的地址,隐藏了真实服务器的ip地址;
实质 个人理解反向代理就是Nginx拦截动态请求之后转发给某个tomcat。这个在集群和分布式都可以使用这个来进行配置转发。
作用 隐藏真实的访问ip地址。我们可以看到流程图中我们访问的最多也就是公网的ip,但是具体tomcat在那个ip是不知道的,这样就能减少tomcat被攻击,提高了服务器的安全性。
2.负载均衡
将原本请求集中到单个服务器上的情况,改为配置多台服务器,然后将请求负载分发到配置的多台服务器上;
3.动静分离
-
传统项目是否,把静态资源 html,css,js 和 动态资源 jsp,java代码全部部署到tomcat;
-
动静分离 把静态资源和动态资源分开部署到不同的服务器上,通过Nginx配置来区分客户端请求该去请求那台服务器;
4.安装依赖
1.下载安装所需依赖
[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.解压pcre依赖
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
3.安装其他的依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
5.安装Nginx
- 解压 Nginx
[root@TS-01-Linux7 src]# tar -xvf Nginx-1.20.2.tar.gz
-
执行命令
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
重启防火墙
6.Nginx常用命令
使用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
-
[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
7.Nginx配置文件
1.全局块
设置一些影响 Nginx 服务整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组),允许生产的 worker process 数,进程 Pid 存放路径,日志存放路径和类型以及配置文件的引入等;
worker_processes
的值越大支持的并发量也越多
2.events块
设置影响服务器与用户网络连接,常用的设置包括是否开启对多 worker process 下的网络链接,是否允许接收多个网络连接,每个 woker process 可以同时支持的最大连接数等;
默认配置,表示每个 worker process 支持的最大连接数为 1024
3.http块
http 全局块配置的指令包括文件引入,MIME-TYPE 定义,日志自定义,连接超时时间,单连接请求数上限等;
8.Nginx配置-实例1-反向代理
例:访问 Nginx 代理地址,跳转到我们 linux 安装的 tomcat8080 页面
- 给 Nginx 准备域名映射 ip 地址
9.Nginx配置-实例2-反向代理
例:Nginx 监听 9001 端口:
10.Nginx配置-实例-负载均衡
例:访问 同一个 路径,负载均衡效果,将请求平均分发到 8080 和 8081 服务器上;
11.Nginx的分配策略
1.轮询 (默认)
每个请求按照时间顺序逐一分配到不同的服务器上,如果后端服务器宕机了,就剔除掉;
2.weight (权重)
weight 默认权重1,权重越高被分配的客户端就越多
# 负载均衡配置参数
upstream myserver {
server ip:8080 weight=10;
server ip:8081 weight=5;
}
3.ip_hash
每个请求按访问 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;
}
12.Nginx配置-实例-动静分离
常用的方式把静态资源文件独立成单独的域名,放在独立的服务器上,另外一种把静态和动态资源混合放在一起,通过 Nginx 来分开;
实例:让 Nginx 分别指向不同的资源
location /www/ {
root /data/;
index index.html index.htm;
expires; // 设置缓存时间
}
location /img/ {
root /data/;
autoindex on;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。