社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
【74】
Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务。它是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性:在 连接高并发的情况下,Nginx 是 Apache 服务不错的替代品:Nginx 在美国是做虚拟主机生 意的老板们经常选择的软件平台之一。
1、HTTP静态服务器:
存储图片,文件等静态资源。
2、负载均衡:
当一台web服务器不够用时,需要添置一台web服务器,这时候就需要nginx来做负载均衡,把浏览器的访问量以特定的规则分发到两台web服务器上。
3、反向代理:
正常套路->客户端直接访问服务器。反向代理是客户端请求nginx,nginx请求服务器,然后返回数据给客户端。
4、虚拟主机:
当一台部署单个应用的web服务器资源过剩时,可以在该服务器上部署多个应用,用nginx来做反向代理,把访问服务器的http请求正确的给到其中的某一个应用。(一台服务器上有多个带域名的应用,多个域名解析同一个IP地址,但是端口号不同)
1 正向代理
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从 原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原 始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然 后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连 接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
二者之间的区别
位置不同
正向代理,架设在客户机和目标主机之间;
反向代理,架设在服务器端;
代理对象不同
正向代理,代理客户端,服务端不知道实际发起请求的客户端;
反向代理,代理服务端,客户端不知道实际提供服务的服务端
1 配置虚拟主机
1.1 虚拟主机介绍
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主 机,每个虚拟主机可以独立对外提供 www 服务,这样就可以实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。
虚拟主机技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应 用于 HTTP(Hypertext Transfer Protocol,超文本传输协议)服务,将一台服务器的某项或 者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬 件资源。
1.2 Nginx 的虚拟主机配置方式
Nginx 支持三种类型的虚拟主机配置
1. 基于 IP 的虚拟主机
2. 基于端口的虚拟主机
3. 基于域名的虚拟主机
1 什么是负载均衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为 Load Balance,其意思就是分摊到多个操作单元上 进行执行,例如 Web 服务器、FTP 服务器、企业关键应用服务器和其它关键任务 服务器等,从而共同完成工作任务。
2 Nginx 负载均衡策略
2.1 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后 端服务器 down 掉,能自动剔除。
2.3指定权重 指定轮询几率,weight 和访问比率成正比,用于后端服务器 性能不均的情况。 upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
2.4 IP 绑定 ip_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访 问一个后端服务器,可以解决 session 的问题。
upstream backserver {
ip_hash; server 192.168.0.14:88;
server 192.168.0.15:80;
}
一、前提
1.将动态ip设置为静态ipcd etc/sysconfig/network-scripts
1)编辑网络vi ifcfg-eth0将BOOTPROTO=static
2)重启服务service network restart
2.绑定多个ip
1)将/etc/sysconfig/network-scripts/ifcfg-eth0 文件复制一份,命名为cp ifcfg-eht0 ifcfg-eht1
2)修改内容vi ifcfg-eht0:1DEVICE=eth0:1IPADDR=192.168.81.129
3)重启服务service network restart
3.重新系统
二、需求nginx作为负载均衡服务器,
用户请求先到达nginx,再由nginx根据负载配置将请求转发到tomcat服务器tomcat1 服务器: 192.168.81.129:8080。
tomcat2 服务器: 192.168.81.129:9090。n
ginx 负载均衡服务器: 192.168.81.128
三、负载均衡
1.复制两份tomcat到/usr/local中,改名n-tomcat12.配置tomcat
1)修改端口,进入/n-tomcat1/confvim server.xml
2)修改页面内容,进入/n-tomcat1/webapps/ROOTvim index.jsp
3.配置nginx反向代理
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {
worker_connections 1024;}http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream
tomcat_server1{
server 192.168.70.143:8080 weight=10;
server 192.168.70.143:9090 weight=2;
}
server {
listen 80;
#为虚拟机指定 IP 或者是域名 server_name test.bjsxt.com;
#主要配置路由访问信息 location / {
#用于指定访问根目录时,访问虚拟主机的 web 目录 proxy_pass http://tomcat_server1;
#在不指定访问具体资源时,默认的展示资源的列表
index index.html index.htm;
} error_page 500 502 503 504 /50x.html;
location = /50x.html { root html; } }}
4.启动tomcat、nginx
5.关闭防火墙service iptables stop6.测试
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!