写在前面:本文的Nginx是在Linux环境下使用的,需要掌握Linux知识和JavaWeb知识
Linux教学:
保姆级教学!Linux操作3天快速入门系列 第一天【篇一】(常用命令)
保姆级教学!Linux操作3天快速入门系列 第二天【篇二】(整合常用命令)
保姆级教学!Linux操作3天快速入门系列 第三天【篇三】(附带CentOS7的jdk,Tomcat安装)作者公众号:小白编码
Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验 有报告表明能支持高达 50,000 个并发连接数。
yum -y install make zlib zlib-devel gcc-c ++ libtool openssl openssl-devel
使用yum安装
yum -y install gcc-c++
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
第一步 联网下载 pcre 压缩文件依赖
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre 8.37.tar.gz
第二步 解压压缩文件使用命令
tar -xvf pcre8.37.tar.gz
进入:cd pcre-8.37
第三步./configure
完成后,
编译且安装
make && make install
安装openssl 、 zlib 、 gcc
依赖
yumy install make zlib zlib devel gcc c++ libtool openssl openssl devel
tar
包./configure
make && make install
以下命令需要先进入/nginx/sbin下
首先:
cd /usr/local/nginx/sbin
1 查看 nginx 版本号
./nginx -v
2 启动 nginx
./nginx
3 停止 nginx
./nginx -s stop
4 重新加载 nginx
./nginx -s reload
5.修改配置文件
cd /usr/local/nginx/conf/
vim nginx.conf
配置文件地址:cd /usr/local/nginx/conf/
使用Vim可以修改vim nginx.conf
全局块: 配置服务器整体运行的配置指令
比如 worker_processes 1; 处理并发数的配置
events 块 : 影响 Nginx 服务器与用户的网络连接
比如 worker_connections 1024; 支持的最大连接数为 1024
http 块:包含两部分:http 全局块,server 块
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
反向代理就是:暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。然后反向代理到指定的服务器。
增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
动静分离就是通过nginx设置,将静态资源和动态资源分开存放,若客户端请求的是静态资源,nginx自动转发到静态资源的目录,而当客户端请求的是动态资源,那么nginx将会请求转发到动态资源目录,获取动态资源。
动态资源有: jsp,servlet等等
静态资源有: html,css,img等等
tomcat/conf/server.xml 是tomcat服务配置文件,下面把该配置文件中各端口的含义说明下.
port=“8005” shutdown=“SHUTDOWN”>接受服务器关闭指令的端口号,我们叫关闭指令端口.
port=“8080” protocol="HTTP/1.1 connectionTimeout=“20000” redirectPort=“8443” />`
http请求处理端口,我们在网页上输入的普通url地址包含的端口就是他 .这个端口叫http端口.
redirectPort=“8443” /> https请求的处理端口.这个端口叫https端口.
port=“8009” protocol=“AJP/1.3” redirectPort=“8443” />接收AJP协议的处理端口.这个端口叫ajp端口.
redirectPort=“8443” /> https请求的处理端口,实际上就4个端口 。
下面我以一个系统里启动3个tomcat为例,说明下操作步骤
分配端口
Tomcat8080端口分配表(tomcat1全部采用默认配置)
端口 | 端口号 |
---|---|
关闭指令端口 | 8005 |
http端口 | 8080 |
https端口 | 8443 |
Ajp端口 | 8009 |
Tomcat8081端口分配表
端口 | 端口号 |
---|---|
关闭指令端口 | 8006 |
http端口 | 8081 |
https端口 | 8444 |
Ajp端口 | 8010 |
Tomcat8082端口分配表
端口 | 端口号 |
---|---|
关闭指令端口 | 8007 |
http端口 | 8082 |
https端口 | 8445 |
Ajp端口 | 8011 |
然后启动这三个tomcat即可
分别解压到这4个文件夹
tomcat8080建test8080
tomcat8081建test8081
tomcat8082建test8082
tomcat8083建test8083
进入tomcat的conf中,修改 vim server.xml(以上方式)
配置Nginx
实现效果: 通过输入ip地址,访问的是tomcat的8080端口页面
效果图:
第一步,准备两个 tomcat ,一个 8001 端口,一个 8002 端口,并准备好测试的页面
第二步,修改 nginx 的配置文件
在http 块中添加 server{}
实现效果:
使用 nginx 反向代理, 根据访问的路径跳转到不同端口的服务中nginx 监听端口为 80
访问 http://ip地址/test8080/ 直接跳转到 ip地址:8080
访问 http://ip地址/test8081/ 直接跳转到 ip地址:8081
配置Nginx
测试:
通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去 服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用 Expires 来缓存),我这里设置 3d ,表示在这 3 天之内访问这个 URL ,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304如果有修改,则直接从服务器重新下载,返回状态码 200 。
动态请求: 通俗的讲:需要查询数据,则要经过tomcat
静态请求: 通俗的讲,需要查询静态的图片,nginx转发到静态资源服务器
配置Nginx
静态网页:
静态图片:
nginx 分配服务器策略
第一种 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
第二种 weight
weigh t 代表权重默认为 1, 权重越高被分配的客户端越多
第三种 ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
第四种 fair (第三方
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
在每个tomcat中加入一个文件avgtest分别放入a.html:
配置Nginx:
测试:
第一次刷新
3个分配服务器策略配置:
以上就是Nginx的简单介绍与使用,如果对你有帮助可以点赞支持^ _ ^
公众号:小白编码