换接入商网站备案,seo长尾关键词优化,石大网页设计与网站建设,网站分析表怎么做的文章目录 Nginx反向代理概念配置 负载均衡概念配置 动静分离概念配置 网关防盗链keepalivednginx跨域 Nginx
反向代理
概念
反向代理#xff08;Reverse Proxy#xff09;方式是指以代理服务器来接受internet上的连接请求#xff0c;然后将请求转发给内部网络上的服务器Reverse Proxy方式是指以代理服务器来接受internet上的连接请求然后将请求转发给内部网络上的服务器并将从服务器上得到的结果返回给internet上请求连接的客户端此时代理服务器对外就表现为一个服务器。通过在网络各处放置反向代理节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
正向代理 加速器 属于正向代理 雷神加速在我自己的电脑上安装的启动雷神软件 雷神给我们访问蓝洞从蓝洞拿到资源再给我们。我们是知道蓝洞服务器的地址的。 反向代理 我们开发了一个网站但是总是收到别人的攻击, www.laohan.com 。 但是为了不让别人直接攻击我的服务器我就做了一个代理服务器nginx 。别人通过访问nginx就能代理到我的网址其实他们是不知道我真正的服务器地址的他们访问的只是我的nginx的地址。
一般会拿正向代理和方向代理来做对比本质上来讲就是看对谁负责
反向代理代理服务器是对服务器负责站在服务器的一边的。正向代理代理服务器是对客户端负责站在客户端的一边的。
配置
这里所有的域名换成自己的域名
域名xxx.cloud 修改配置文件下的server server {listen 80;server_name www.xxx.work;location / {root /home/www/www;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}在location 下添加 代理地址proxy_pass http://xxx.cloud:8088;
并且注释root 和 index。因为启动了代理之后那么静态文件就会失效了。
重新启动nginx访问www.xxx.work 其实就相当于访问http://xxx.cloud:8088
负载均衡
ES/服务器 容量有限/访问数量有限。 20 服务器请求进来以后需要将请求平均分配到每个服务器上将压力平摊。
概念
负载均衡通过某种特点的算法将用户的请求合理的分配到集群服务的某个服务器上。高并发的一种方案。 配置
upstream 和server配合使用
在upstream中起别名 并配置多个服务器地址和端口在server的代理中使用起好的别名 proxy_pass http://别名
http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;#负载upstream serverip{server 192.168.56.131:8088;server 192.168.56.132:8088;}server {listen 80;server_name www.xxx.work;location / {proxy_pass http://serverip;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}}在192.168.56.131和192.168.56.132服务器分别部署两个项目并且启动
访问域名www.xxx.work
默认负载方式 轮询。负载权重 weight数字 server 192.168.56.131:8088 weight8; server 192.168.56.132:8088 weight2;down 表示离线不参加服务 server 192.168.56.131:8088 weight8 down;备用 backup 正常情况不会使用这个机器只有其他机器不能用的时候才启用备用服务器 server 192.168.56.131:8088 weight8 backup; 不停用132服务器的情况下一直请求 132当我们手动将132服务器关闭那么请求就会走131服务器。IP hash 根据客户端ip地址转发同一台服务器可以保持会话least_conn 最少连接访问fair 根据后端服务器响应时间转发url_hash 定向url转发
注意IP hash least_conn fair url_hash在我们实际开发场景里不用 一般开发中我们使用轮询策略权重(根据服务器性能)配合分布式session技术来开发。
动静分离
适用对象中小型企业。 动静分离也是优化程序访问速度的一种方式。
概念
当我们向nginx发起请求的时候nginx会将请求转发到后台服务器后台服务器在将页面信息给了nginx,然后传递到用户但是用户的页面会加载很多的静态资源 js css image其实这些资源没必要再次通过nginx–后台–nginx–用户我们可以将资源直接放在nginx上用户需要的资源可以直接从nginx上获取从而提高响应速度和降低后台服务器的压力。
配置
记住这里的域名问题不是复制过来就可以用的
将jar包中的css删除页面展示的时候 css丢失将css放入nginx服务html目录中在server中添加新的location信息指定加载的css页面这样就可以从nginx中加载css资源了。 server {listen 80;server_name www.xxx.work;location / {proxy_pass http://serverip;# root home/www/www;# index index.html index.htm;}location /css{root html;index index.html;}
但是我们也想将js image font等都可以放到nginx服务器中但是每个都location /css location /js比较麻烦我们可以通过正则的方式匹配 server {listen 80;server_name www.xxx.work;location / {proxy_pass http://serverip;# root home/www/www;# index index.html index.htm;}location ~*/(js|css|image|img|lib){root html;index index.html;}
~*表示正则的开始 | 表示或者 ,然后将静态资源都放到 nginx中 即可。
网关
内网代理
131服务开启防火墙然后就不能直接访问了
systemctl start firewalld
firewall-cmd --reload
systemctl restart firewalld
指定端口和ip访问
firewall-cmd --permanent --add-rich-rule“rule family“ipv4” source address“192.168.56.181” port protocol“tcp” port“8088” accept”
移除规则
firewall-cmd --permanent --remove-rich-rule“rule family“ipv4” source address“192.168.56.181” port port“8088” protocol“tcp” accept”
firewall-cmd --list-all
通过我们的nginx代理服务器还是能访问到的。我们的131服务器以后只能通过130服务器访问130就像一个大门是进入131的唯一通道我们也把130服务器叫做网关服务器。
防盗链
盗链是指在自己的页面上展示一些并不在自己服务器上的内容。通常的做法是通过技术手段获得它人服务器上的资源地址绕过别人的资源展示页面直接在自己的页面上向最终用户提供此内容。比较常见的是一些小站盗用大站的资源图片、音乐、视频、软件等对于这些小站来说通过盗链的方法可以减轻自己服务器的负担因为真实的空间和流量均是来自别人的服务器。
b130 很多资源
a140 nginx做代理代理b 访问a的地址其实就是在访问ba就可以在自己的服务器页面上打广告利用b的资源吸引流量。
再配置一个nginx服务器140 140服务器代理130服务器。 访问 192.168.56.130 其实所有的静态资源都是从我们130服务器上加载的。
将以下代码添加到静态资源代码里并且重新加载nginx服务器。
valid_referers 192.168.56.130; if ($invalid_referer) { return 403; }
location ~*/(css|js|images|img|lib){valid_referers 192.168.56.130;if ($invalid_referer) {return 403;}root html;index index.html;
}重新访问140服务器可以靠到访问的静态资源都是403禁止访问的。
原理 访问时的refer和资源服务器上配置的refer是否一样不一样就不让访问。curl测试防盗链 curl -I http://192.168.56.130/img/07.jpgI 只显示头信息curl -e “http://192.168.56.130” -I http://192.168.56.130/img/07.jpg -e 表示引用信息
keepalived
yum install -y keepalived
cd /etc/keepalived
vi keepalived.conf
130服务器配置
! Configuration File for keepalivedglobal_defs {router_id lb130}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.56.166}
}220 服务器配置
! Configuration File for keepalivedglobal_defs {router_id lb220}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 50advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.56.166}
}systemctl start keepalived
systemctl status keepalived
systemctl restart keepalived
原理 192.168.56.166是一个虚拟地址和各个服务器的ip地址关联但是只能关联一个默认是给主服务器的如果主服务器挂了那么这个虚拟ip就和从服务器关联。
nginx跨域
一般解决的是前端静态页面在不同服务器之间的访问。
# 在server下添加配置文件#允许跨域请求的域* 代表所有add_header Access-Control-Allow-Origin *;#允许带上cookie请求add_header Access-Control-Allow-Credentials true;#允许请求的方法比如 GET/POST/PUT/DELETEadd_header Access-Control-Allow-Methods *;#允许请求的headeradd_header Access-Control-Allow-Headers *;