网站开发的有哪些好的软件优化就是开除吗
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:38
当前位置: 首页 > news >正文
网站开发的有哪些好的软件,优化就是开除吗,物联网平台网站开发,建立销售型网站Day57-Nginx反向代理与负载均衡初步应用 1. Nginx代理介绍2. Nginx代理常见模式2.1 正向代理2.2 反向代理2.3 正向与反向代理区别 3. Nginx代理支持协议4. Nginx反向代理场景实践5. lb01安装部署nginx 1. Nginx代理介绍
1#xff09;在没有代理的情况下#xff0c;都是客户端… Day57-Nginx反向代理与负载均衡初步应用 1. Nginx代理介绍2. Nginx代理常见模式2.1 正向代理2.2 反向代理2.3 正向与反向代理区别 3. Nginx代理支持协议4. Nginx反向代理场景实践5. lb01安装部署nginx 1. Nginx代理介绍
1在没有代理的情况下都是客户端直接请求服务端服务端直接响应客户端。
2租客租房中介代理
3在有代理模式的情况下客户端往往无法直接向服务端发起请求而是需要使用到中间代理服务来实现客户端和服务通信。
4为什么要使用代理功能
提高访问效率。承担单机无法处理的大并发流量请求。满足724不宕机不丢数据需求。
Nginx代理常见模式 Nginx作为代理服务, 按照应用场景模式主要分为正向代理、反向代理两种模式 2.1 正向代理 *正向代理早期的应用场景主要用于局域网内的电脑内部上网主要解决的痛点是早期企业带宽有限用户上网拥挤速度慢以及上网行为管理。目前带宽已不是问题并且智能路由器等实现上网管理功能因此正向代理应用已不那么流行了。 2.2 反向代理 反向代理的核心应用场景为用于公司后台网站集群架构中客户端-代理–服务端解决的主要痛点是单台机器无法承受大量并发用户的服务请求。需要有多台服务器同时处理请求。 2.3 正向与反向代理区别 1.服务的对象不同 正向代理代理的对象是局域网内的上网客户端为其服务。 反向代理代理的对象是服务端为上网的用户提供服务服务。 2.架设位置不同 正向代理架设在企业办公上网出口位置。 反向代理架设在企业网站服务器的前端。 3.代理作用不同 正向代理解决局域网上网提速、节约网站带宽、管控员工上网行为。 反向代理解决单台网站服务器撑不住流量并发问题同时保障网站7X24不间断提供服务的需求。
Nginx代理支持协议 1.Nginx作为代理服务可支持的代理协议非常的多具体如下图
2.Nginx作为反向代理常常会用到如下几种代理协议如下图所示
Grpc: 链接: https://www.jianshu.com/p/9c947d98e192 链接: http://doc.oschina.net/grpc?t58008 gRPC 一开始由 google 开发是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。 websocket 链接: https://www.zhihu.com/question/20215561 链接: https://baike.baidu.com/item/WebSocket/1953845?fraladdin 3.最后我将企业常用反向代理模式与Nginx反向代理模块对应关系总结如下表格 反向代理模式Nginx反向代理模块http、websocket、httpsngx_http_proxy_modulefastcgingx_http_fastcgi_moduleuwsgingx_http_uwsgi_modulegrpcngx_http_v2_moduleNginx反向代理场景实践 1Nginx反向代理配置语法示例 Syntax: proxy_pass URL; Default: — Context: location, if in location, limit_except #示例 proxy_pass http://localhost:8000/uri/ proxy_pass http://10.0.0.7:8000/uri/ proxy_pass http://unix:/tmp/backend.socket:/uri/2Nginx反向代理配置实例
角色外网IP(NAT)内网IP(LAN)主机名反向代理eth0:10.0.0.5eth1:172.16.1.5lb01Web服务eth1:172.16.1.7web01 3web01、web02服务器, 分别配置虚拟主机 #web01服务器配置测试虚拟主机 [rootweb01 ~]# cat /etc/nginx/conf.d/01_test.etiantian.org.conf #server{listen 80;
server_name _default;
return 404;
#}server {listen 80;server_name test.etiantian.org;charset utf-8;location / {root /usr/share/nginx/html/test;index index.html index.htm;} }[rootweb01 conf.d]# mkdir /usr/share/nginx/html/test [rootweb01 conf.d]# echo web01 /usr/share/nginx/html/test/index.html [rootweb01 conf.d]# systemctl restart nginx [rootweb01 conf.d]# curl -H Host:test.etiantian.org 10.0.0.7 html headtitle404 Not Found/title/head body centerh1404 Not Found/h1/center hrcenternginx/1.20.1/center /body /html [rootweb01 conf.d]# curl -H Host:test.etiantian.org 10.0.0.7 web01#web02服务器配置测试虚拟主机 [rootweb02 ~]# cat /etc/nginx/conf.d/01_test.etiantian.org.conf server{listen 80;server_name _default;return 404; }server {listen 80;server_name test.etiantian.org;charset utf-8;location / {root /usr/share/nginx/html/test;index index.html index.htm;} }[rootweb02 conf.d]# mkdir /usr/share/nginx/html/test [rootweb02 conf.d]# echo web02 /usr/share/nginx/html/test/index.html [rootweb02 conf.d]# systemctl restart nginx [rootweb02 conf.d]# curl -H Host:test.etiantian.org 10.0.0.8 html headtitle404 Not Found/title/head body centerh1404 Not Found/h1/center hrcenternginx/1.20.1/center /body /html [rootweb02 conf.d]# curl -H Host:test.etiantian.org 10.0.0.8 web024proxy代理服务器, 配置监听eth0的80端口使10.0.0.0网段的用户能够通过代理服务器访问到后端的172.16.1.7的80端口站点内容 [rootlb01 conf.d]# cat /etc/nginx/conf.d/blog.etiantian.org.conf server {listen 80;server_name test.etiantian.org;location / {proxy_pass http://172.16.1.7:80;proxy_set_header Host \(http_host; #nginx代理携带请求头请求后端Web节点} } [rootlb01 conf.d]# systemctl enable nginx [rootlb01 conf.d]# systemctl start nginx更多见day57-oldboy最牛.txt 5抓包分析Nginx代理处理整个请求的过程 扩展作业 6添加发往后端服务器的请求头信息, 如图 Syntax: proxy_set_header field value; Default: proxy_set_header Host \)proxy_host; proxy_set_header Connection close; Context: http, server, location
客户端请求Host的值是blog.etiantian.org, 那么代理服务会像后端请求时携带Host变量为blog.etiantian.org
proxy_set_header Host $http_host;
将\(remote_addr的值放进变量X-Real-IP中\)remote_addr的值为客户端的ip
proxy_set_header X-Real-IP $remote_addr;
客户端通过代理服务访问后端服务后端服务会通过该变量会记录真实客户端地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;7代理的向后端请求时使用的HTTP协议版本。默认1.0版本。如果使用长连接建议调整为1.1版本协议。 Syntax: proxy_http_version 1.0 | 1.1; Default: proxy_http_version 1.0; Context: http, server, location This directive appeared in version 1.1.4.
proxy_http_version 1.1;8代理到后端的TCP连接、响应、返回等超时时间, 如图
#nginx代理与后端服务器连接超时时间(代理连接超时) Syntax: proxy_connect_timeout time; Default: proxy_connect_timeout 60s; Context: http, server, location#nginx代理等待后端服务器的响应时间 Syntax: proxy_read_timeout time; Default: proxy_read_timeout 60s; Context: http, server, location#后端服务器数据回传给nginx代理超时时间 Syntax: proxy_send_timeout time; Default: proxy_send_timeout 60s; Context: http, server, location5. lb01安装部署nginx 使用官方仓库安装Nginx #yum install nginx -y 可能优先使用epel里的源怎么确保我们配置的官方优先。 [rootweb01 ~]# rpm -qa yum-plugin-priorities [rootweb02 ~]# yum install yum-plugin-priorities -y [rootweb01 ~]# cat /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/\(releasever/\)basearch/ gpgcheck0 priority1 #增加优先参数使得官方源优先epel源。#安装Nginx [rootweb01 ~]# yum install nginx -y配置Nginx进程运行的用户 [rootweb01 ~]# useradd -u1111 www -s /sbin/nologin -M [rootweb01 ~]# sed -i /^user/c user www; /etc/nginx/nginx.conf [rootweb01 ~]# grep ^user /etc/nginx/nginx.conf启动Nginx并将Nginx加入开机自启 [rootweb01 ~]# systemctl start nginx [rootweb01 ~]# systemctl enable nginx[rootweb01 ~]# lsof -i :80 #查看端口对应的服务 [rootweb01 ~]# nginx -v #查看版本 nginx version: nginx/1.20.1 [rootweb01 ]# curl 10.0.0.5 #welcome to Nginx 表示正常。实验1 [rootlb01 conf.d]# vim 01_test.etiantian.org.conf server {listen 80;server_name test.etiantian.org;location / {proxy_pass http://172.16.1.7:80;proxy_set_header Host \(http_host;} }[rootlb01 conf.d]# curl -H Host:test.etiantian.org 10.0.0.5 html headtitle404 Not Found/title/head body centerh1404 Not Found/h1/center hrcenternginx/1.20.1/center /body /html实验2 [rootlb01 conf.d]# vim 01_test.etiantian.org.conf server {listen 80;server_name test.etiantian.org;location / {proxy_pass http://172.16.1.7:80;proxy_set_header Host \)http_host; #实现Nginx代理携带host字段请求节点。} }# 成功 [rootlb01 conf.d]# curl -H Host:test.etiantian.org 10.0.0.5 web01拆分不同的后端服务器提供访问。 1.动静分离。 2.不同的动态业务分离。 网站集群一个项目下的 www.etiantian.org # www.etiantian.org/dynamic/xx//xxxx #动态服务器集群 www.etiantian.org/regi/xx//xxxx #注册登录服务器集群 www.etiantian.org/regi/xx//xxxx #手机服务器集群 ……二级页面 tongzhuang.etiantian.org
neiyi.etiantian.org image.etiantian.org静态服务独立域名 image.ett.com [rootweb01 conf.d]# cat location01.etiantian.org.conf server {listen 80;server_name www.etiantian.org;#www.etiantian.orglocation / {proxy_pass http://172.16.1.7:80;proxy_set_header Host \(http_host;}#www.etiantian.org/dynamic/xx//xxxx #动态服务器集群location /dynamic/ {proxy_pass http://172.16.1.8:80; ##动态proxy_set_header Host \)http_host;}#www.etiantian.org/regi/xx//xxxx #注册登录服务器location ^ /regi/ {proxy_pass http://172.16.1.9:80; #注册登录服务器集群proxy_set_header Host \(http_host;}#www.etiantian.org/regi/xx//xxxx #手机服务器集群#location ^~ \)http_user_agent 安卓英文 {proxy_pass http://172.16.1.9:80; ##手机服务器集群proxy_set_header Host \(http_host;}##静态location ~* \.(gif|jpg|jpeg)\) {proxy_pass http://172.16.1.10:80;proxy_set_header Host \(http_host;} }负载均衡 backend服务器池 1基本负载均衡实验 [rootlb01 conf.d]# cat 01_test.etiantian.org.conf upstream backend {#server backend1.example.com weight5;#server backend2.example.com:8080;#server unix:/tmp/backend3;server 172.16.1.7 weight2; #默认80端口server 172.16.1.8 weight1; #默认80端口#server 8080.etiantian.org:8080 backup; #热备#server backup2.example.com:8080 backup; #热备 }server {listen 80;server_name test.etiantian.org;location / {proxy_pass http://backend;#proxy_pass http://a.etiantian.org:80;proxy_set_header Host \)http_host;} }配置web01: [rootweb01 conf.d]# cat 01_test.etiantian.org.conf server{listen 80;server_name _default;return 404; }server {listen 80;server_name test.etiantian.org;charset utf-8;location / {root /usr/share/nginx/html/test;index index.html index.htm;} } server {listen 8080;server_name test.etiantian.org;charset utf-8;location / {root /usr/share/nginx/html/test8080;index index.html index.htm;} }配置web02: [rootweb02 conf.d]# cat 01_test.etiantian.org.conf server{listen 80;server_name _default;return 404; }server {listen 80;server_name test.etiantian.org;charset utf-8;location / {root /usr/share/nginx/html/test;index index.html index.htm;} }systemctl restart nginx# 实现效果 [rootweb02 conf.d]# curl -H host:test.etiantian.org 10.0.0.8 web02 [rootweb02 conf.d]# curl -H host:test.etiantian.org 10.0.0.7 web01结果 [rootlb01 conf.d]# for n in {1..100}; do curl test.etiantian.org;sleep 1;done web01 web02 web01 web01 web02 web01 web01 web022测试backup功能 [rootlb01 conf.d]# cat 01_test.etiantian.org.conf upstream backend {#server backend1.example.com weight5;#server backend2.example.com:8080;#server unix:/tmp/backend3;server 172.16.1.7 weight2; #默认80端口server 172.16.1.8 weight1; #默认80端口#server 8080.etiantian.org:8080 backup; #热备#server backup2.example.com:8080 backup; #热备 } server {listen 80;server_name test.etiantian.org;location / {proxy_pass http://backend;#proxy_pass http://a.etiantian.org:80;proxy_set_header Host $http_host;} }#host解析 [rootlb01 conf.d]# grep 80 /etc/hosts 172.16.1.7 web01 8080.etiantian.org关掉web02 nginx:pkill nginx然后回到lb01访问 [rootlb01 conf.d]# for n in {1..100}; do curl test.etiantian.org;sleep 1;done web02 web02 web02 web01-8080 web01-8080 web01-8080 web02 web02
- 上一篇: 网站开发的英文书有什么软件郑州科大医院
- 下一篇: 网站开发的整个流程网站开发项目策划书
相关文章
-
网站开发的英文书有什么软件郑州科大医院
网站开发的英文书有什么软件郑州科大医院
- 技术栈
- 2026年03月21日
-
网站开发的疑虑教育网站制作服务
网站开发的疑虑教育网站制作服务
- 技术栈
- 2026年03月21日
-
网站开发的研究背景网站设计带装修网站大概收费
网站开发的研究背景网站设计带装修网站大概收费
- 技术栈
- 2026年03月21日
-
网站开发的整个流程网站开发项目策划书
网站开发的整个流程网站开发项目策划书
- 技术栈
- 2026年03月21日
-
网站开发电脑配置要求wordpress防采集
网站开发电脑配置要求wordpress防采集
- 技术栈
- 2026年03月21日
-
网站开发电脑设置老哥们给个关键词
网站开发电脑设置老哥们给个关键词
- 技术栈
- 2026年03月21日
