【Nginx】- 02 Nginx反向代理、负载均衡、动静分离、虚拟域名配置

news/2024/12/5 12:01:40/

Nginx反向代理、负载均衡、动静分离、虚拟域名配置

  • 1 反向代理
    • 1.1 nginx配置
  • 2 负载均衡
    • 2.1 ngxin配置
    • 2.2 nginx负载均衡策略
      • 2.2.1 默认轮询
      • 2.2.2 权重
      • 2.2.3 iphash
      • 2.2.4 least_conn
  • 3 动静分离
    • 3.1 打包前端项目
    • 3.2 部署前端项目
    • 3.3 配置静态图片资源访问
  • 4 虚拟域名配置
    • 4.1 修改nginx配置
    • 4.2 修改本地域名解析器
    • 4.3 访问测试

关于基础概念,已经在上篇讲述清楚,本篇不多赘述

1 反向代理

向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

1.1 nginx配置

server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {#root   html;#index  index.html index.htm;proxy_pass http://101.132.152.21:8888/;}
}

2 负载均衡

2.1 ngxin配置

#声明tomcat集群
upstream  fengmi {server    localhost:8889;server    localhost:8888;
}server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://fengmi/;}
}

2.2 nginx负载均衡策略

2.2.1 默认轮询

2.2.2 权重

#声明tomcat集群
upstream  fengmi {server    localhost:8889 weight=2;server    localhost:8888 weight=1;
}server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://fengmi/;}
}

2.2.3 iphash

指定负载均衡服务器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。

#声明tomcat集群
upstream  fengmi {ip_hash;server    localhost:8889;server    localhost:8888;
}server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://fengmi/;}
}

2.2.4 least_conn

把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。

#声明tomcat集群
upstream  maitaole {least_conn;    #把请求转发给连接数较少的后端服务器server    localhost:8889;server    localhost:8888;
}server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://fengmi/;}
}

3 动静分离

3.1 打包前端项目

  • 修改src/utils/request.jsp中的baseUrl为后端的nginx服务器的地址

  • 执行npm run build打包项目

3.2 部署前端项目

  • 将dist目录下的资源上传到nginx服务器的html目录下

  • 修改nginx服务器配置

location / {root   html;index  index.html index.htm;
}

因为现在前端和后端都在同一个nginx服务器上,所以要分开部署

  • 同一台服务器上安装两个Nginx,并修改不同的端口(如:前端部署在8080上,后端部署在80上)
  • 将前端和后端部署在不同的服务器上

3.3 配置静态图片资源访问

配置Nginx访问路径

# 配置图片访问地址
location /upload/ {alias D:/workspace/upload/;  # 如果是linux环境则配置(路径自由选择):/usr/local/upload
}

4 虚拟域名配置

4.1 修改nginx配置

#声明tomcat集群
upstream  maitaole {server    localhost:8889;server    localhost:8888;
}server {listen       80;server_name   www.qfjava.com;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://fengmi/;}
}

4.2 修改本地域名解析器

修改C:\Windows\System32\drivers\etc\hosts文件

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
101.132.152.21      www.yingjava.com

4.3 访问测试

http://www.yingjava.com/


http://www.ppmy.cn/news/87416.html

相关文章

RLHF中的PPO算法原理及其实现

RLHF中的PPO算法原理及其实现 ChatGPT是基于InstructGPT实现的多轮对话生成式大模型。ChatGPT主要涉及到的技术包括: 指令微调(Instruction-tuning);因果推断(Causal Language Modeling);人类…

一图看懂 click 模块:一个通过组合的方式来创建精美命令行界面的包,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 click 模块:一个通过组合的方式来创建精美命令行界面的包,资料整理笔记(大全) 🧊摘要🧊模块图&#…

单片机--中断实验练习

【1】按键中断实验(外部中断)--EXTI: STM32上电LED(PB0)灯亮 ,当检测到按键(PA8)按下时处理中断事件,变量i 扩展:知识点 响应优先级->在两个中断同时触…

RK3399平台开发系列讲解(网络篇)Linux 发送网络包流程

🚀返回专栏总目录 文章目录 一、发送网络包流程图二、发送网络包步骤沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将详细介绍Linux网络包发包流程。 一、发送网络包流程图 二、发送网络包步骤 VFS 层:write 系统调用找到 struct file,根据里面的 file_oper…

数据库的事务处理

文章目录 前言一、事务的概念二、事务的特性三、隔离级别四、并发控制五、总结 前言 在现代信息化时代,大量的数据不断地被创建、修改、删除和查询。 为了保证数据的准确性和一致性,数据库的事务处理成为了必不可少的一个重要组成部分。 本文将针对数据…

【C++ 学习 ⑦】- 模板初阶(函数模板和类模板)

目录 一、前言 二、函数模板 2.1 - 基本概念和原理 2.2 - 定义格式 2.3 - 实例化详解 2.3.1 - 隐式实例化 2.3.2 - 显示实例化 2.4 - 模板参数的匹配原则 三、类模板 3.1 - 定义格式 3.2 - 实例化 参考资料: C函数模板(模板函数)详…

C++ 中智能指针的用法

在 C 中,智能指针是一种封装了动态分配内存的指针类,它们能够自动处理分配和释放内存的操作,从而避免出现内存泄漏的问题。C 中的智能指针有三种:std::unique_ptr、std::shared_ptr 和 std::weak_ptr(auto_ptr 在 C11 …

ceph 单节点 ceph-deploy安装部署

ceph单节点部署 1.查询挂载信息 lsblk 2.使用自定义镜像源,默认镜像源地址(可选) /etc/yum.repos.d/CentOS-Base.repo 替换baseurl路径为本地路径 /root/ceph_install_offline/ceph-package 链接:https://pan.baidu.com/s/180zM5gPcXN5gVke…