如何通过nginx进行反向代理

  1. 简单介绍
    1. 正向代理
      1. 正向代理服务器是一个位于客户端和原始服务器(origin server)之间的服务器,为了能够从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。其中正向代理一般是xxx在客户端设置代理服务器xxx,通过代理服务器转发请求,最终访问到目标服务器。

    2. 反向代理
      1. 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定,对于用户来说,访问反向代理服务器是完全无感知的。
    3. 简单的说,正向代理时,用户是必须知道目标服务器的地址信息。而反向代理时,用户并不关心真正的目标服务器,只需要知道反向代理服务器即可。
  2. 我们可以通过nginx作为反向代理服务器使用
    1. 首先我们需要在Linux服务器上安装好nginx并启动nginx,并且在Linux服务器上启动java应用服务
    2. 进入nginx的安装目录,并编辑配置文件nginx.conf文件配置反向代理信息并保存
      1. cd /usr/local/project/nginx/confvim nginx.conf
      2.         location /study/ {# 反向代理配置,将请求转发到指定的服务proxy_pass http://192.168.163.100:8080;}
    3. 检查配置文件的正确性,并重新加载nginx配置文件
      1. sudo ./nginx -t
      2. sudo ./nginx -s reload
    4. 访问反向代理服务器信息
      1. 访问地址:http://服务器ip地址/study/
  3. 若通过nginx访问java的web服务器时出现中文乱码时的排查步骤
    1. 首先不通过nginx直接访问java的web服务时是否中文乱码,如果java的web服务本身就中文乱码,需要进行下列检查
      1. 若是maven项目
        1. 在pom文件中添加设定编码为utf-8
        2.     <properties><!-- 指定项目编码 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
      2. 若是以jar包启动,则需要在java -jar 启动时设定utf-8编码
        1. java -jar -Dfile.encoding=utf-8 xxxxxxxx.jar
      3. 若当前项目还是中文乱码则应该是项目里面的编码未处理好,需要查看自己项目本身的代码进行相应的代码以及配置调整
    2. 如果在java的web项目中已经不出现中文乱码了,但是通过nginx访问依然出现中文乱码,则需要设置nginx的server块的编码为utf-8
      1.     server {listen       80;server_name  localhost;# 设置字符集charset utf-8;}
      2. 然后检查配置文件,再重新加载配置文件,完成之后进行浏览器访问即可
        1. sudo ./nginx -tsudo ./nginx -s reload

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

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

相关文章

Web语言基础课程期末代做

《Web语言基础》课程期末考核要求综合运用课程所学知识&#xff0c;使用VS和SQL及相关开发工具&#xff0c;结合DIVCSS等前端设计技术&#xff0c;完成一个具备新闻发布和考试功能的动态系统&#xff0c;要求包括但不限于&#xff1a;用户注册、登录功能、新闻展示功能、后台数…

springboot(ssm大学生二手电子产品交易平台 跳蚤市场系统Java(codeLW)

springboot(ssm大学生二手电子产品交易平台 跳蚤市场系统Java(code&LW) 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或…

【实时渲染】图形渲染管线

渲染管线是什么&#xff1f; 渲染管线的核心功能就是利用给定的虚拟相机、三维物体、光源等信息&#xff0c;经过一系列不同的阶段来生成或渲染一张二维图像。渲染管线就是实时渲染的低层工具。最终图像中物体的位置和形状&#xff0c;由其几何结构&#xff0c;环境特征以及相…

Ubuntu+Tesla V100环境配置

系统基本信息 nvidia-smi’ nvidia-smi 470.182.03 driver version:470.182.03 cuda version: 11.4 查看系统体系结构 uname -aUTC 2023 x86_64 x86_64 x86_64 GNU/Linux 下载miniconda https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?CM&OA https://mi…

Python指南 | 在linux上安装python3.7

发布于 2021-12-14 13:28:47 6.8K2 举报 今天在腾讯云服务器上安装了python3&#xff0c;又学到的知识。 如何在Linux环境中安装Python3.7.0以上 1.下载python cd /home wget http://cdn.npm.taobao.org/dist/python/3.7.4/Python-3.7.4.tgz 复制 使用了wget软件&#…

python字符串格式化

字符串格式化 # 2023年11月16日 星期四 y 2023 m 11 d 16 w 四 s %d年%d月%d日 星期%s%(y,m,d,w) print(s) s {}年{}月{}日 星期{}.format(y,m,d,w) print(s) s f{y}年{m}月{d}日 星期{w} print(s)

TestNG数据驱动DataProvider(4种方式)

TestNG数据驱动DataProvider(4种方式) 1、DataProvider用法(从二维数组中读取) 1、定义方法,加上@DataProvider注解 定义一个方法,方法名随意取,使用@DataProvider注解,注解中给这个provider起名字,该方法返回一个二维数组。例如:@DataProvider(name="testData&quo…

redis报错3

INFO: Initializing SpringDispatcherServletdispatcherServlet

OpenCV快速入门:移动物体检测和目标跟踪

文章目录 前言一、移动物体检测和目标跟踪简介1.1 移动物体检测的基本概念1.2 移动物体检测算法的类型1.3 目标跟踪的基本概念1.4 目标跟踪算法的类型 二、差值法检测移动物体2.1 差值法原理2.2 差值法公式2.3 代码实现2.3.1 视频或摄像头检测移动物体2.3.2 随机动画生成的移动…

串口数据包收发的思路和流程-stm32入门

本节主要内容&#xff1a; 如何去规定一个合理的数据包格式如何收发数据包 1. 数据包格式规定/定义 1.1 HEX 数据包定义 固定包长&#xff0c;含包头包尾 可变包长&#xff0c;含包头包尾 首先数据包的作用是把一个个单独的数据给打包起来&#xff0c;方便我们进行多字节…

【05】python序列类型

文章目录 1.字符串 strings1.1 字符串的创建1.2 字符串的长度1.3 字符串的索引1.4字符串的切片2.列表 List2.1列表的创建2.2 列表的长度2.3 访问列表中的元素2.3.1 列表的索引2.3.2 列表的切片2.4 修改列表中的元素3. 元组 Tuple3.1 元组的创建与长度3.2 访问元组中的元素4.字典…

【精选】七天手撕分布式缓存之一

项目参考GitHub上的高分项目7days-golang&#xff0c;文章内不一定展示完整代码&#xff0c;文章的目的是分享自己在实现分布式缓存的过程中对具体代码实现的解释与见解&#xff0c;文章的编写的时间均是在项目实现之后&#xff0c;可放心参考&#xff0c;有些地方会加上自己对…

Java LeetCode篇-深入了解关于数组的经典解法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 轮转数组 1.1 使用移位的方式 1.2 使用三次数组逆转法 2.0 消失的数字 2.1 使用相减法 2.2 使用异或的方式 3.0 合并两个有序数组 3.1 使用三指针方式 3.2 使用合…

Spring Cache(缓存框架)

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

vue 中 js 金额数字转中文

参考&#xff1a;js工具函数之数字转为中文数字和大写金额_js封装工具类函数金额大写-CSDN博客 我使用的框架vol.core。 客户需求要将录入框的金额数字转换成中文在旁边显示&#xff0c;换了几种函数&#xff0c;最终确定如下函数 function changeToChineseMoney(Num) {//判断…

Android Termux SFTP如何实现远程文件传输

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP&#xff08;SSH File Transfer Protocol&#xff09;是一种基于SSH&#xff08;Secure Shell&#xff09;安全协议的文件传输协议。与FTP协议相比&#xff0c;SFTP使用了…

【24届校招】c++选手还有机会吗?如何选择更好的出路?

一、今年为什么c选手就业形势如此艰难&#xff1f; 去年c岗位的火热&#xff0c;不少c选手拿到高薪offer&#xff0c;今年转c的人群变多&#xff0c;内卷加剧&#xff0c;高学历大佬多如牛毛&#xff0c;很多比较好的c岗位多人投递&#xff0c;僧多肉少。 从行情来说&#xf…

Selenium-Unittest单元测试框架

1、Unittest介绍 为什么要学习单元测试框架 测试用例的组织与运行需要单元测试框架的参与&#xff0c;从而满足不同测试场景的需要&#xff0c;单元测试框架提供了丰富的比较方法&#xff1a;实际结果与预期结果的对比测试结果 单元测试框架提供了丰富的日志&#xff1a;给出测…

livox 半固体激光雷达 gazebo 仿真 | 安装与验证

livox 半固体激光雷达 gazebo 仿真 | 安装与验证 livox 半固体激光雷达 gazebo 仿真 | 安装与验证livox 介绍安装验证 livox 半固体激光雷达 gazebo 仿真 | 安装与验证 livox 介绍 览沃科技有限公司&#xff08;Livox&#xff09;成立于2016年。为了革新激光雷达行业&#xf…

MySQL特点和基本语句

MySQL MySQL是一种流行的关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发&#xff0c;现属于甲骨文公司&#xff08;Oracle&#xff09;旗下产品。MySQL是基于C语言开发的&#xff0c;它具有高性能、可扩展性、易用性等特点&#xff0c;并且支持大量的用户访问。 My…