如何通过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/conf
        
        vim 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 -t
          
          
          sudo ./nginx -s reload
          
          

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值