网站首页 > 技术教程 正文
1、nginx 隐藏端口
服务器上的一个端口只能被一个程序使用,要想实现多个程序共用一个端口,可以使用Nginx转发:用 Nginx 监听 80 端口,当有 HTTP 请求到来时,将 HTTP 请求的 HOST 等信息与其配置文件进行匹配并转发给对应的应用
server {
listen 80;
server_name _;
location / {
server_name_in_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8009;
}
}
http://localhost:80 转发到 http://127.0.0.1:8009
2、nginx 端口转发到指定路径
server {
listen 80;
server_name _;
location /api/ {
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8086/;
}
}
http://localhost:80/api/ 转发到 http://127.0.0.1:8086/
3、根据请求后缀分发
server {
listen 80;
server_name _;
location ~/dev/ {
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8086;
}
location ~/prod/ {
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8087;
}
}
http://localhost:80/dev/ 转发到 http://127.0.0.1:8086/dev/
http://localhost:80/prod/ 转发到 http://127.0.0.1:8087/prod/
4、负责均衡
负载均衡,意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器、组件)上进行执行,是解决高性能、单点故障(高可用)、扩展性(水平伸缩)的终极解决方案。
如果请求数过大,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器的情况改为请求分发到多个服务器上,就是负载均衡。
upstream java_server {
server 192.168.100:8086;
server 192.168.100:8099;
}
server {
listen 80;
server_name _;
location /java/ {
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://java_server/;
}
}
http://localhost:80/java/ 转发到 http://127.0.0.1:8086/ 和 http://192.168.100:8099/
负载均衡实现的几种策略:
1、轮询(默认):每个请求按时间顺序逐一分配到不同的服务器,如果服务器down了,会自动剔除
upstream java_server {
server 192.168.100:8086;
server 192.168.100:8099;
}
2、权重:默认为1,权重越高,分配的请求越多。
upstream java_server {
server 192.168.100:8086 weight=2; //8086服务可接受请求是8099服务的两倍
server 192.168.100:8099;
}
3、ip_hash: 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后台服务器, 可以解决 session 的问题。
upstream java_server {
ip_hash;
server 192.168.100:8086;
server 192.168.100:8099;
}
4、fair(第三方):按后端响应时间进行分配,响应时间越短分配的请求越多。
upstream java_server {
fair;
server 192.168.100:8086;
server 192.168.100:8099;
}
猜你喜欢
- 2024-10-12 在SpringBoot+Vue3项目中通过Nginx代理WebSocket实现跨域通信
- 2024-10-12 如何实现 WebSocket 反向代理?(socks5反向代理)
- 2024-10-12 「码渣充电」《Nginx核心知识》反向代理与负载均衡原理
- 2024-10-12 苏宁Spring Cloud微服务脚手架工具vole实践分享
- 2024-10-12 nginx的反向代理机制解决前端跨域问题
- 2024-10-12 Nginx:不管正向还是反向我通通代理
- 2024-09-22 Nginx反向代理HTTPS到公网(nginx反向代理香港)
- 2024-09-22 nginx如何实现前后端分离的跨域问题
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)