Nginx作为web服务器
Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl,php等,但是不支持java,java程序只能通过与tomcat配合完成,Nginx专为性能优化而开发,性能是及其重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数
正向代理
如果把局域网外的internet当成一个巨大的资源库,当局域网中的客户访问internet时,则需要通过代理服务器访问,这种方式就是正向代理
反向代理
客户对代理无感知,因为客户端不需要任何配置就可以访问,只需将请求发送到反向代理服务器,有反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址
负载均衡
单个服务器解决不了,增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载 分发到不同的服务器,也就是我们所说的负载均衡
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力
当浏览器去请求服务器时,首先要经过nginx的反向代理服务器,然后再去访问服务器。现在可以通过nginx分开部署静态资源和动态资源,从而实现动静态资源分离
Nginx安装步骤
1、使用远程连接工具连接linux操作系统
2、http://nginx.org官网下载软件,需要先安装一些依赖,需要素材:Pcre、openssl、zlib,nginx,因为nginx依赖于gcc,命令yum install gcc -c++
3、第一步,安装pcre,命令:yum install -y pcre pcre-devel,或者,解压缩pcre-xx.tar.gz包,进入解压缩目录,执行./configure,完成后回到pcre目录下执行mark&&make install,安装后查看版本,pcre-config --version
4、第二步,安装openssl,命令:yum install -y openssl openssl-deve,或者,解压缩openssl-xx.tar.gz包,进入解压缩目录,执行./configure,完成后回到openssl目录下执行mark&&make install,安装后查看版本openssl-config --version
5、第三步,安装zlib,命令:yum install -y zlib zlib-devel,或者,解压缩zlib-xx.tar.gz包,进入解压缩目录,执行configure,完成后回到zlib目录下执行mark&&make install。
6、省略第二步和第三步,可直接安装其他依赖命令:yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
7、安装nginx,解压缩nginx-xx.tar.gz包,进入解压缩目录,执行configure,完成后执行mark,再执行make install。
8、启动nginx,进入nginx/sbin,启动./nginx ,查看nginx版本命令:nginx -v
9、进入conf目录
查看conf开放端口号
firewall-cmd --list-all
设置开放的端口号
Sudo firewall-cmd --add-port=8001/tcp --permanent
重启防火墙
Firewall -cmd --reload
Nginx操作常用命令
使用命令前提:必须进入nginx目录:nginx/sbin
1、查看nginx版本号:./nginx -v
2、启动nginx: ./nginx
3、关闭nginx: ./nginx -s stop
4、重新加载nginx:./nginx -s reload
Nginx配置文件介绍:
Nginx配置主要由三部分组成
1、全局块
从配置文件到events之间的内容。主要会设置一些影响nginx服务器整体运行的配置命令
比如:Worker _processes 1;指的是并发数
2、Events
主要影响nginx服务器与用户的网络连接,常用的设置包括是否开对多work process下的网络连接进行序列化
比如显示的:worker_connections 1024;指最大连接数
3、http全局块
指令包括文件引入
Nginx配置实例-反向代理1
实现效果:打开浏览器,输入ansheng.online,跳转到linux系统的tomcat主页
实现过程:准备;两台服务器,这里是一个主服务器,用于nginx代理,又安装tomcat,端口是8080,并进入bin启动./startup.sh
配置内容:
1、windows的host文件中需要配置,配置域名映射的ip地址
2.nginx的conf文件中配置代理地址
3、浏览器访问结果:
Nginx配置实例-反向代理2
实现效果:
监听端口9001
访问http://localhost:9001/edu/ 直接跳转到127.0.0.1:8080
访问http://localhost:9001/vod/ 直接跳转到127.0.0.1:8081
准备工作:再部署一个tomcat。一个8080端口,一个8081端口
具体配置:
1、找到conf文件
2、找到对外开放的端口
Sudo firewall-cmd --add-port=8001/tcp --permanent
3、location说明,用于匹配URL,语法如下:
location [ = | ~ | ~* | ^~] uri { }
= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
~:用于表示 uri 包含正则表达式,并且区分大小写。
~*:用于表示 uri 包含正则表达式,并且不区分大小写。
^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
Nginx配置实例-负载均衡
1、实现效果:浏览器地址栏输入地址http://192.168.17.129/edu/a.html,负载均衡效果,平均080和8081端口中
2、准备工作:两台tomcat服务器,一台8080,一台8081,在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面a.html,用于测试
3、配置负载均衡
Upstream myserve{
Server 192.168.17.129(本机地址):8080;
Server 192.168.17.129(本机地址):8081;
}
Server里面server name:本机地址
Location中加入proxy_pass
负载均衡方式
1、轮询:如上配置
2、Weight权重:权重默认为1,权重越高被分配的客户端越多
Upstream myserve{
Server 192.168.17.129(本机地址):8080 weight =5;
Server 192.168.17.129(本机地址):8081 weight =10;
}
3、ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
4、Fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配
Nginx配置实例-动静分离
静态资源通过nginx,动态资源交给tomcat处理
1、准备工作
在linux系统中放静态资源,创建俩文件夹www和image,一个放html页面
一个放图片
2、配置
3、测试结果
访问浏览器,输入http://192.168.17.129/image/01.jpg
访问浏览器,输入http://192.168.17.129/www/a.html