分布式 - 服务器Nginx:一小时入门系列之 return 指令

文章目录

      • 1. return 指令语法
      • 2. return code URL 示例
      • 3. return code text 示例
      • 4. return URL 示例

1. return 指令语法

return指令用于立即停止当前请求的处理,并返回指定的HTTP状态码和响应头信息,它可以用于在Nginx中生成自定义错误页面,或者在Nginx中重定向到另一个URL,它的语法如下:

return code URL
return code text
return code
return URL

其中,code 是 HTTP 状态码,可以是 2xx、3xx、4xx 或 5xx 等。text 是可选的文本信息,用于在响应中返回一些额外的信息。以下是一些示例:

# 返回 200 OK响应
return 200;  
# 返回 404 Not Found 响应,并在响应中包含"Not Found Eroor"文本信息
return 404 "Not Found Eroor";  
# 返回301 永久重定向响应,将请求重定向到 https://example.com
return 301 https://example.com$request_uri;  

状态码:301 永久重定向,302 临时重定向

2. return code URL 示例

启动监听8088端口的ruoyi-admin服务器,启动监听8080端口的tomcat服务器:

# 启动ruoyi-admin服务
[root@nginx-dev conf.d]# cd /home/apps
[root@nginx-dev apps]# java -jar ruoyi-admin.jar# 启动tomcat服务
[root@nginx-dev ~]# /home/apache-tomcat-8.5.81/bin/startup.sh

① Nginx 配置文件:/etc/nginx/conf.d/8004.conf

server {listen 8004 ssl;server_name ruoyi.https;ssl_certificate     /home/server.crt;ssl_certificate_key /home/server.key;ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers         HIGH:!aNULL:!MD5;ssl_password_file   /home/cert.pass;location / {proxy_pass http://localhost:8088;}
}

Nginx服务器的配置文件,它监听8004端口并使用SSL协议进行加密通信。服务器名称为“ruoyi.https”。SSL证书和密钥文件分别位于“/home/server.crt”和“/home/server.key”。SSL协议版本为TLSv1、TLSv1.1和TLSv1.2,加密算法为HIGH:!aNULL:!MD5。

该配置文件中的“location /”指令将所有请求转发到本地8088端口,即Nginx充当反向代理服务器将所有请求转发到本地的另一个服务器上。

② Nginx 配置文件: /etc/nginx/conf.d/8003.conf

server {listen 8003;server_name ruoyi.loadbalance;return 301 https://192.168.1.9:8004;
}

server 块监听端口号8003,并将请求重定向到 https://192.168.1.9:8004。这里使用了 return 指令,表示直接返回指定的 HTTP 状态码和响应头,不再继续处理后续指令。

转发和重定向都是HTTP协议中常用的跳转方式,它们的作用都是将用户请求从一个URL地址转移到另一个URL地址,但它们的实现方式和效果略有不同。

转发是指在服务器端将用户的请求转发到另一个资源进行处理,转发的过程是服务器内部完成的,对于客户端而言,它并不知道服务器进行了转发操作,因此客户端的URL地址不会发生变化。转发可以保留原始请求的信息,如请求参数、请求头等,因此在某些场景下,转发可以更好地满足业务需求。

重定向是指在服务器端将用户的请求重定向到另一个URL地址,重定向的过程是通过向客户端发送一个HTTP响应,让客户端重新发送一个新的请求到重定向的URL地址。重定向会导致客户端的URL地址发生变化,因此客户端需要重新发起一个新的请求,这会增加一定的网络开销。重定向可以实现URL地址的更改,如将HTTP协议的URL地址重定向到HTTPS协议的URL地址。

因此下面的写法是错误的:

server {listen 8003;server_name ruoyi.loadbalance;return 301 https://localhost:8004;
}

③ 重启 Nginx 服务:

[root@nginx-dev ~]# nginx -s reload

④ 测试访问8003端口: http://192.168.1.9:8003

在这里插入图片描述

3. return code text 示例

① 配置Nginx服务器监听8007端口

[root@nginx-dev conf.d]# vi 8007.conf
[root@nginx-dev conf.d]# nginx -s reload
server {listen 8007;server_name ruoyi.loadbalance;return 200 "哈哈,大家好,这是一个测试";
}
server {listen 8007;server_name ruoyi.loadbalance;location /test {return 200 "哈哈,大家好,这是一个测试";}
}

② 测试:

[root@nginx-dev conf.d]# curl -i  http://192.168.1.9:8007
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Sat, 26 Aug 2023 09:20:19 GMT
Content-Type: application/octet-stream
Content-Length: 39
Connection: keep-alive哈哈,大家好,这是一个测试

4. return URL 示例

① 配置Nginx服务器监听8007端口

server {listen 8007;server_name ruoyi.loadbalance;location /test {return https://www.baidu.com;}
}

② 页面访问:http://192.168.1.9:8007,会跳转到百度首页。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/106872.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式(11)观察者模式

一、概述: 1、定义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 2、结构图: public interface S…

[管理与领导-50]:IT基层管理者 - 8项核心技能 - 5 - 沟通是润滑剂

目录 前言: 一、什么是沟通 1.1 定义 1.2 沟通模型 1.3 沟通的六层次模型 1.4 为什么需要沟通 二、沟通的五维度 三、沟通的原则 3.1 以终为始 3.2 双赢思维:人们只会做对自己有利的事 3.3 牵善的思维 四、沟通的过程 五、沟通技巧 六、深…

mysql数据库root密码遗忘后,修改root密码

目录 方式一: 方式二: 2.1 也可以像我这样,普通用户登录进去后 2.2 执行如下命令,将已知的user1的加密密文更新到root中 2.3 查询数据库 2.4 用root用户登录 2.5 登录正常,但这会root登录进去后,无法…

代码随想录算法训练营第四十六天|LeetCode 1143,1035,53

目录 LeetCode 1143.最长公共子序列 动态规划五步曲: 1.确定dp[i][j]的含义 2.找出递推公式 3.初始化dp数组 4.确定遍历顺序 5.打印dp数组 LeetCode 1035.不相交的线 LeetCode 53.最大子序列和(动态规划) 动态规划五步曲: 1.确定…

深度学习11:Transformer

目录 什么是 Transformer? Encoder Decoder Attention Self-Attention Context-Attention 什么是 Transformer(微软研究院笨笨) RNN和Transformer区别 Universal Transformer和Transformer 区别 什么是 Transformer? ​ …

基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 2 Inport和Outports 标签页介绍

上篇我们介绍了Function页的内容,这篇我们介绍Inports和Outports页的内容,这里我们再次强调一个概念,code mapping是以simulink的角度去看的,就是先要在模型中建立simulink模块,在code mapping里映射他要对应的autosar的元素,之后生成代码时的c语言的名字是以Autosar的元…

机器学习在大数据分析中的应用

文章目录 机器学习在大数据分析中的原理机器学习在大数据分析中的应用示例预测销售趋势客户细分和个性化营销 机器学习在大数据分析中的前景和挑战前景挑战 总结 🎉欢迎来到AIGC人工智能专栏~探索机器学习在大数据分析中的应用 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&…

项目进度管理(4-2)关键链法和关键路径法的区别和联系

1 关键链法和关键路径法的主要区别 1.1 关键链法和关键路径法的关注焦点不同 关键路径法(CPM):关注项目中最长的路径,也就是所需时间最长的路径,这被称为关键路径。关键路径决定了项目的最早完成时间。关键链法&…

2023 百度翻译 爬虫 js逆向 代码

js代码&#xff1a; const jsdom require("jsdom"); const {JSDOM} jsdom; const dom new JSDOM(<!DOCTYPE html><p>Hello world</p>); window dom.window; document window.document; XMLHttpRequest window.XMLHttpRequest;function n(t,…

java开发之fastjson

依赖 <!-- fastjson依赖 --> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> <…

vue ui 创建项目没有反应

问题 cmd中输入 vue ui 没有反应 解决办法 vue ui命令需要vue3.0以上的版本才可以 1、查看当前版本 vue --version vue版本在3.0以下是没有ui命令的 2、查看版本所拥有的命令 vue -h 3、卸载之前版本的vue npm uninstall vue-cli -g 卸载完成&#xff0c;检查是否已经…

尚硅谷宋红康MySQL笔记 10-18

是记录&#xff0c;我不会记录的特别详细 第10章 创建和管理表 标识符命名规则 数据库名、表名不得超过30个字符&#xff0c;变量名限制为29个只能包含 A–Z, a–z, 0–9, _共63个字符数据库名、表名、字段名等对象名中间不要包含空格同一个MySQL软件中&#xff0c;数据库不能…

群晖 NAS WebDAV服务手机ES文件浏览器远程访问【无公网IP内网穿透】

&#x1f4f1; iOS开发上架主页 在强者的眼中&#xff0c;没有最好&#xff0c;只有更好。我们是移动开发领域的优质创作者&#xff0c;同时也是阿里云专家博主。 ✨ 关注我们的主页&#xff0c;探索iOS开发的无限可能&#xff01; &#x1f525;我们与您分享最新的技术洞察和实…

QT5.12.12通过ODBC连接到GBase 8s数据库(CentOS)

本示例使用的环境如下&#xff1a; 硬件平台&#xff1a;x86_64&#xff08;amd64&#xff09;操作系统&#xff1a;CentOS 7.8 2003数据库版本&#xff08;含CSDK&#xff09;&#xff1a;GBase 8s V8.8 3.0.0_1 为什么使用QT 5.12.10&#xff1f;该版本包含QODBC。 1&#…

探索AIGC人工智能(Midjourney篇)(二)

文章目录 利用Midjourney进行LOGO设计 用ChatGPT和Midjourney的AI绘画&#xff0c;制作儿童绘本故事 探索Midjourney换脸艺术 添加InsightFaceSwap机器人 Midjourney打造专属动漫头像 ChatGPT Midjourney画一幅水墨画 Midjourney包装设计之美 Midjourney24节气海报插画…

Vue3.0极速入门- 目录和文件说明

目录结构 以下文件均为npm create helloworld自动生成的文件目录结构 目录截图 目录说明 目录/文件说明node_modulesnpm 加载的项目依赖模块src这里是我们要开发的目录&#xff0c;基本上要做的事情都在这个目录里assets放置一些图片&#xff0c;如logo等。componentsvue组件…

matlab使用教程(20)—插值基础

1.网格和散点样本数据 插值是在位于一组样本数据点域中的查询位置进行函数值估算的方法。函数值是根据最接近查询点的样本数据点计算的。MATLAB 根据样本数据的结构&#xff0c;可以执行两种插值。样本数据可以形成网格&#xff0c;也可以是分散的。 网格化的样本数据使得插值…

postgresql基于postgis常用空间函数

1、ST_AsGeoJSON 图元转geojson格式 select ST_AsGeoJSON(l.geom) from g_zd l limit 10 2、 ST_Transform 坐标转换 select st_transform(l.shape, 3857) from sde_wf_cyyq l limit 10select st_astext(st_transform(l.shape, 3857)) from sde_wf_cyyq l limit 103、st_aste…

美团增量数仓建设新进展

摘要&#xff1a;本文整理自美团系统研发工程师汤楚熙&#xff0c;在 Flink Forward Asia 2022 实时湖仓专场的分享。本篇内容主要分为四个部分&#xff1a; 建设背景核心能力设计与优化业务实践未来展望 点击查看原文视频 & 演讲PPT 一、美团增量数仓的建设背景 美团数仓架…

Win系统设置开机自启项及自定义自启程序

Win系统设置开机自启项及自定义自启程序 分用户自启动和系统自启动两种形式&#xff1a; 1. 用户自启动目录&#xff1a;C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 用快速键打开&#xff1a; Win键R键&#xff0c;输入shell:…