网站建设和网站运营包括什么如何看一个网站做的如何

张小明 2025/12/31 20:43:25
网站建设和网站运营包括什么,如何看一个网站做的如何,优秀网站设计赏析,网站建设之网页制作语言基础Nginx代理负载均衡 课程目标 正向代理与反向代理 nginx反向代理 动静分离 负载均衡 nginx负载均衡 课程实验 正向代理与反向代理讲解 nginx反向代理配置 nginx-tomcat实现动静分离部署 负载均衡概述及负载策略 nginx-tomcat实现负载均衡 课堂引入 生活中我们经常会…Nginx代理负载均衡课程目标正向代理与反向代理nginx反向代理动静分离负载均衡nginx负载均衡课程实验正向代理与反向代理讲解nginx反向代理配置nginx-tomcat实现动静分离部署负载均衡概述及负载策略nginx-tomcat实现负载均衡课堂引入生活中我们经常会接触到很多的中介房产中介等中介的存在使我们的相关业务办理变得更加方便。那么代理本质上就是起到中介的效果。授课进程一、正向代理与反向代理1、概述在计算机网络领域代理服务器扮演着至关重要的角色它在服务器与客户端之间充当中间人的角色有效地提高系统的安全性、性能和可扩展性2、正向代理客户端想要访问一个服务器但是它可能无法直接访问这台服务器这时候这可找一台可以访问目标服务器的另外一台服务器而这台服务器就被当做是代理人的角色 称之为代理服务器于是客户端把请求发给代理服务器由代理服务器获得目标服务器的数据并返回给客户端。客户端是清楚目标服务器的地址的而目标服务器是不清楚来自客户端它只知道来自哪个代理服务器所以正向代理可以屏蔽或隐藏客户端的信息。3、反向代理从上面的正向代理你会大概知道代理服务器是为客户端作代理人它是站在客户端这边的。其实反向代理就是代理服务器为服务器作代理人站在服务器这边它就是对外屏蔽了服务器的信息常用的场景就是多台服务器分布式部署像一些大的网站由于访问人数很多就需要多台服务器来解决人数多的问题这时这些服务器就由一个反向代理服务器来代理客户端发来请求先由反向代理服务器然后按一定的规则分发到明确的服务器而客户端不知道是哪台服务器。常常用nginx来作反向代理二、nginx代理配置1、概述及原理作为反向代理服务器Nginx 可以帮助提高网站的响应速度和可用性同时隐藏后端服务器的复杂性这使得 Nginx 在负载均衡和缓存方面非常有用比如我之前在部署PHP项目的时候nginx在处理PHP请求时就是将动态请求发送给PHP-FPM模块处理此处就是反向代理的体现location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }2、环境搭建本次实验总共需要三台机器一台作为nginx代理服务器2台作为后端的web服务器IP地址主机名称网络配置配置要求服务器角色192.168.217.143nginx-proxyVMnet0VMNet8(nat)1CPU、1GB内存、20G磁盘nginx代理服务器192.168.217.145tomcat-userVMNet01CPU、1GB内存、20G磁盘web服务器-user项目192.168.217.144tomcat-adminVMNet01CPU、1GB内存、20G磁盘web服务器-adminVMNet0为内网环境无法访问外网hostonlyVMNet8可以访问外网提供了统一的入口net注意搭建环境时先全部用外网等环境搭建好了之后配置网络三台机器需要完成的事情#!/bin/bash # 1. 设置主机名 hostnamectl set-hostname $1 if [ $1 nginx-proxy ];then echo 192.168.120.134 nginx-proxy /etc/hosts echo 192.168.120.135 tomcat-admin /etc/hosts echo 192.168.120.136 tomcat-user /etc/hosts fi ​ # 2. 关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config ​ # 3. 配置yum源 cd /etc/yum.repos.d mkdir bak mv *.repo bak curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache yum install epel-release -y ​ # 4. 重启 rebootnginx-proxy需要安装nginxvim /etc/yum.repos.d/nginx.repo ​ [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.key module_hotfixestrue ​ [nginx-mainline] namenginx mainline repo baseurlhttp://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck1 enabled0 gpgkeyhttps://nginx.org/keys/nginx_signing.key module_hotfixestrue ​ yum install nginx -ytomcat-user与 tomcat-admin需要安装jdk与tomcattar -xf jdk-17_linux-x64_bin.tar.gz -C /usr/local vim /etc/profile ​ # 在文件的最后面添加如下内容 export JAVA_HOME/usr/local/jdk-17.0.12 export PATH$PATH:$JAVA_HOME/bin ​ source /etc/profile tar -xf apache-tomcat-9.0.93.tar.gz -C /usr/local网络配置tomcat-user: VMNet0 查看IP重新连接 tomcat-admin: VMNet0 查看IP重新连接 nginx-proxy: VMNet0VMNet8 重新设置主机名3、基本配置及语法1语法及常用配置项模块: ngx_http_proxy_module 指令: proxy_pass 位置: location 作用: 设置代理服务器将请求转发到的协议http或https、地址主机名或IP以及可选的URI。此指令是proxy模块的核心用于指定请求应被转发到的后端服务器 常见配置: proxy_set_header: 设置真实客户端地址 # 设置 Host 头部 proxy_set_header Host $http_host; # 设置客户端真实 IP 地址请求的客户机的真实ip proxy_set_header X-Real-IP $remote_addr; # 设置请求的来源 IP 地址链转发服务器的ip proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect: 转发时是否使用默认端口 proxy_redirect [ default|off|redirect replacement ]; proxy_connect_timeout: Nginx与后端服务器建立连接的超时时间 proxy_read_timeout: Nginx从后端服务器读取响应的超时时间 proxy_send_timeout: Nginx向后端服务器发送的请求超时时间 proxy_connect_timeout 5s; proxy_read_timeout 60s; proxy_send_timeout 10s; proxy_buffering: 缓冲开关 proxy_buffer_size: 缓冲区大小 proxy_buffers: 缓冲区数量 proxy_busy_buffers _size: 忙碌的缓冲区大小 proxy_buffering [ on | off ]; proxy_buffer_size 4k|8k; proxy_busy_buffers 8 4k|8k; proxy_busy_buffers_size 8k|16k;2需求当请求地址中包含/user时转发到tomcat-user服务器当地址中包含/admin时转发到tomcat-admin服务器tomcat-usercd /usr/local/apache-tomcat-9.0.93/webapps/ rm -rf * mkdir ROOT cd ROOT echo user index.html cd ../../bin/ ./startup.shtomcat-admincd /usr/local/apache-tomcat-9.0.93/webapps/ rm -rf * mkdir ROOT cd ROOT echo admin index.html cd ../../bin/ ./startup.shnginx-proxycd /etc/nginx/conf.d/ vim default.conf location /user/ { proxy_pass http://tomcat-user:8080/; } location /admin/ { proxy_pass http://tomcat-admin:8080/; } systemctl restart nginx注意1proxy_pass http://tomcat-user:8080/ 地址后面带/与不带/是否区别的带如访问的路径为http://192.168.217.143/user/转发之后为 http://tomcat-user:8080/不带如访问的路径为http://192.168.217.143/user/转发之后为 http://tomcat-user:8080/user/注意2/user/的含义是http://192.168.217.143/user/a.html 出去协议IP端口之后以/user/开头的请求/admin/的含义是http://192.168.217.143/admin/a.html 出去协议IP端口之后以/admin/开头的请求4、获取真实IPtomcat 日志中获取的客户端的IP是nginx服务器的IP这个IP并不是我们想要的结果而是想要的真实的客户端的IP在nginx的代理上加上如下配置nginx-proxycd /etc/nginx/conf.d/ vim default.conf location /user/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://tomcat-user:8080/; proxy_redirect default; } location /admin/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://tomcat-admin:8080/; proxy_redirect default; } systemctl restart nginx在tomcat-user服务器中更改tomcat日志打印的方式 server.xmlHost namelocalhost appBasewebapps unpackWARstrue autoDeploytrue Valve classNameorg.apache.catalina.valves.RemoteIpValve remoteIpHeaderX-Real-IP / Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogs prefixlocalhost_access_log suffix.txt pattern%{X-Real-IP}i %h %l %u %t quot;%rquot; %s %b / /Host重新访问在查看日志输出三、动静分离部署1、概述为了提高网站的响应速度减轻程序服务器TomcatJboss等的负载对于静态资源如图片、js、css等文件可以在反向代理服务器中进行缓存这样浏览器在请求一个静态资源时代理服务器就可以直接处理而不用将请求转发给后端服务器。对于用户请求的动态文件如servlet、jsp则转发给TomcatJboss服务器处理这就是动静分离。即动态文件与静态文件的分离。动静分离可通过location对请求url进行匹配将网站静态资源HTMLJavaScriptCSSimg等文件与后台应用分开部署提高用户访问静态代码的速度降低对后台应用访问。通常将静态资源放到nginx中动态资源转发到tomcat服务器中。2、演示woniu-car-war.zip来演示动静分离将静态资源部署在nginx代理服务器将动态资源部署在tomcat服务器复制静态资源到代理服务器找到项目的static静态文件所在目录然后执行下面命令将static静态资源目录拷贝到nginx代理服务器中远程复制命令scp -r static/ rootnginx-proxy:/usr/share/nginx/html/配置代理服务器的location 路由规则location ~ /.*\.(js|css|png)$ { root /usr/share/nginx/html/static; }到浏览器进行验证使用F12开发者工具访问静态资源路劲看资源访问报错提示是哪个服务器四、负载均衡1、概述Nginx是一个高性能的HTTP和反向代理服务器拥有丰富的功能和模块负载均衡就是其中之一。负载均衡是一种技术用于在多台服务器之间分配工作负载以确保高可用性和可靠性。本文将详细介绍Nginx的负载均衡算法、工作原理、配置方法和实际应用。负载均衡是指将用户的请求分配到多个后端服务器上进行处理以达到优化资源利用率、提高响应速度和增加系统的可靠性的目的。负载均衡器通常位于用户和服务器之间接收用户的请求并根据某种算法将请求分发给合适的后端服务器2、配置http { upstream backend { server backend1.example.com weight3; server backend2.example.com weight1; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } }upstream server_group_name { server localhost:8080; server 192.168.xxx.xxx:8081 down; server 192.168.xxx.xxx:8082 max_fails3 fail_timeout20s; server 192.168.xxx.xxx:8083; # 启用了主动式健康检查。健康检查的间隔时间为10秒超时时间为5秒连续失败3次认为服务器不可用连续成功2次认为服务器恢复可用 health_check interval10s timeout5s fails3 passes2; }3、算法1轮询轮询Round Robin策略是 Nginx 配置中默认的负载均衡策略该策略将客户端的请求依次分配给后端的服务器节点对后端集群中的服务器实现轮流分配。轮询策略绝对均衡且实现简单但也会因后端服务器处理能力的不同而影响整个集群的处理性能upstream backend { server backend1.example.com; server backend2.example.com; }加权轮询Weighted Round Robin在 Nginx 的轮询策略中为了避免因集群中服务器性能的差异对整个集群性能造成影响在轮询策略的基础上增加了权重参数让使用者可以手动根据集群中各服务器的性能将请求数量按照权重比例分配给不同的被代理服务器upstream backend { server backend1.example.com weight3; server backend2.example.com weight1; }2一致性哈希Nginx 启用哈希的负载均衡策略是用 hash 指令来设置的。哈希策略方法可以针对客户端访问的 URL 计算哈希值对相同的 URL 请求Nginx 可以因相同的哈希值而将其分配到同一后端服务器。当后端服务器为缓存服务器时将极大提高命中率提升访问速度。 一致性哈希的优点是可以使不同客户端的相似请求发送给同一被代理服务器当被代理服务器为缓存服务器场景应用时可以极大提高缓存的命中率。 一致性哈希的缺点是当上游服务器组中的节点数量发生变化时将导致所有绑定被代理服务器的哈希值重新计算影响整个集群的绑定关系产生大量回源请求。upstream backend { hash $request_uri; # 以客户端请求URI为计算哈希值的ke server backend1.example.com weight3; server backend2.example.com weight1; }3IP哈希IP 哈希IP Hash负载均衡策略根据客户端IP计算出哈希值然后把请求分配给该数值对应的被代理服务器。在哈希值不变且被代理服务器可用的前提下同一客户端的请求始终会被分配到同一台被代理服务器上。IP 哈希负载均衡策略常被应用在会话Session保持的场景。 HTTP 客户端在与服务端交互时因为 HTTP 协议是无状态的所以任何需要上下文逻辑的情景都必须使用会话保持机制会话保持机制是通过客户端存储由唯一的 Session ID 进行标识的会话信息每次与服务器交互时都会将会话信息提交给服务端服务端依照会话信息实现客户端请求上下文的逻辑关联。会话信息通常存储在被代理服务器的内存中如果负载均衡将客户端的会话请求分配给其他被代理服务器则该会话逻辑将因为会话信息失效而中断。所以为确保会话不中断需要负载均衡将同一客户端的会话请求始终都发送到同一台被代理服务器通过会话保持实现会话信息的有效传递。upstream backend { ip_hash; # 启用IP哈希负载均衡策略 server backend1.example.com weight3; server backend2.example.com weight1; }4最少连接默认配置下轮询算法是把客户端的请求平均分配给每个被代理服务器每个被代理服务器的负载大致相同该场景有个前提就是每个被代理服务器的请求处理能力是相当的。如果集群中某个服务器处理请求的时间比较长那么该服务器的负载也相对增高。在最少连接least_conn负载均衡策略下会在上游服务器组中各服务器权重的前提下将客户端请求分配给活跃连接最少的被代理服务器进而有效提高处理性能高的被代理服务器的使用率upstream backend { least_conn; # 启用最少连接负载均衡策略 server backend1.example.com weight3; server backend2.example.com weight1; }4、案例通过案例演示nginx不同负载均衡策略的实验五、基于nginx的负载均衡1、OSI 模型OSI 模型Open System Interconnection Model是一个由国际标准化组织ISO提出的概念模型试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。 它将计算机网络体系结构划分为七层每层都可以提供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业标准——TCP/IP 协议。 OSI采用了分层的结构化技术共分七层物理层、数据链路层、网络层、传输层、会话层、表示层、应用层2、七层负载七层负载也称为应用层负载均衡主要在网络模型的第七层应用层上工作。它处理HTTP、HTTPS等协议的流量并根据应用层协议的信息来进行流量分发和负载调度。七层负载均衡可以实现更高级的功能如URL重写、会话保持、SSL卸载等。在Nginx中七层负载均衡是通过http模块实现的。http { upstream backend_http { server backend1.example.com; server backend2.example.com; } server { listen 80; server_name example.com; location / { proxy_pass http://backend_http; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }在这个配置中http块定义了一个七层负载均衡上下文。upstream块定义了一个名为backend_http的后端服务器组包含两个服务器。server块监听80端口并将流量代理到backend_http服务器组。location块指定了将所有请求代理到后端服务器组并设置了一些代理相关的参数如请求头3、四层负载四层负载也称为传输层负载均衡主要在网络模型的第四层传输层上工作。它处理TCP/UDP协议的流量并根据报文中的目标地址和端口以及负载均衡设备设置的服务器选择方式来决定最终选择的内部服务器。四层负载均衡能够拿到的数据只有IP和端口无法对流量大小进行区分。在Nginx中四层负载均衡是通过stream模块实现的。stream { upstream backend_tcp { server backend1.example.com:8080; server backend2.example.com:8080; } server { listen 80; proxy_pass backend_tcp; } } http{ ... }在这个配置中stream块定义了一个四层负载均衡上下文。upstream块定义了一个名为backend_tcp的后端服务器组包含两个服务器。server块监听80端口并将流量代理到backend_tcp服务器组注意这里需要安装Nginx 1.9及以上版本1.9及以上版本Nginx才支持四层路由TCP/UDP转发并在编译安装时开启—with-stream模块4、四层负载实验需求通过nginx的4层负载均衡实现SSH服务的代理stream { #四层代理配置stream upstream backend { #定义集群名称为backend server 192.168.1.20:22; #代理的是ssh服务所以是22端口 server 192.168.1.30:22; } server { #定义一个本地服务器代理服务 listen 12345; #本地代理监听端口需要是未使用的端口 proxy_pass backend; #调用backend集群集群名要与上面定义的对应 } } http { ... ... }客户端测试使用MX远程连接nginx4层代理服务器的12345端口会自动转发到web1和web2的22端口六、综合练习需求实现对woniu-car项目的负载均衡1. 总共三台服务器1台nginx服务器2台tomcat服务器 2. nginx实现7层负载均衡使用加权轮询的算法进行负载课堂小结正向代理与反向代理讲解nginx反向代理配置nginx-tomcat实现动静分离部署负载均衡概述及负载策略nginx-tomcat实现负载均衡课后作业完成课堂的案例及练习将今天的内容整理为思维导图的形式完成以下面试题1、nginx负载均衡有哪些策略特点是什么2、正向代理与反向代理的区别是什么3、四层代理与七层代理的区别是什么4、使用nginx方向代理之后在web服务器端如何获取客户端真实IP扩展内容无
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

福建漳州建设局网站企业网站建设费用怎么记账

1.栈 1.1栈的概念及结构 1.1.1概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的则。…

张小明 2025/12/30 11:53:37 网站建设

东莞网站设计及拍摄方案公司品牌管理

彻底搞懂 HAXM is not installed 怎么解决:从报错到原理的深度实践指南 你有没有在启动 Android 模拟器时,突然弹出一条红字警告:“ HAXM is not installed ”?或者更具体一点:“This AVD requires an Intel x86 em…

张小明 2025/12/31 7:21:06 网站建设

网站建设与管理案例教程教学大纲定制软件开发软件

核心结论 Database队列驱动在高并发下性能极差,是因为它的工作模式本质上是“用处理联机事务处理(OLTP)的数据库,去做高性能消息队列(Message Queue)的事”,这是典型的工具误用。 Redis或Beanst…

张小明 2025/12/31 7:20:34 网站建设

站长工具网站推广专业做合同的网站

如何零基础配置kiss-translator:离线翻译的完整操作指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.c…

张小明 2025/12/29 2:35:02 网站建设

苏州园区网站制作公司建网站企划书

CCS静态数据规范解读 1 完整FFD使用说明 1.1 引言 为了明确FFD记录和PDAF读出记录如何描述读出细节,这里给出不同示例。示例中展示了支持交错式PDAF读出选项的图像传感器,以及支持底部嵌入式数据PDAF读出选项的图像传感器,同时涵盖了有无读出OB像素能力的情况。底部嵌入式…

张小明 2025/12/31 20:25:26 网站建设