配置nginx反向代理

Posted 腾云T

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置nginx反向代理相关的知识,希望对你有一定的参考价值。

nginx反向代理

什么是反向代理,在说反向代理之前,我们先来说一说什么是正向代理,正向代理是我们最常接触的一种代理模式,正向代理最大的特点就是,客户端非常明确的知道自己要访问的服务器地址,但是服务器只知道请求来自于哪个代理服务器,并不清楚来自哪个具体的客户端,正向代理模式屏蔽或隐藏了真实的客户端信息。

说完了正向代理,我们再来说一下反向代理,反向代理就是多个客户端给服务器发送的请求,代理服务器接收到之后,按照一定的规则分发给了后端的服务器进行处理,此时,请求的来源也就是客户端是明确的,但是请求具体是从哪台服务器处理的并不明确,反向代理就是隐藏了服务器的信息。

反向代理配置

使用两台虚拟机来作一个配置

两台虚拟机的IP分别是192.168.60.60和192.168.60.70

  • 在物理机机C:\\Windows\\System32\\drivers\\etc的hosts文件中,写下域名与IP的对应关系

  • 把需要用到的jdk和Tomcat资源包上传好,我用的是这两个

[root@centos ~]# ls
apache-tomcat-8.5.43.tar.gz
jdk-8u77-linux-x64.rpm
  • 在192.168.60.60上配置Tomcat站点,首先安装jdk
[root@centos ~]# rpm -ivh jdk-8u77-linux-x64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8.0_77-2000:1.8.0_77-fcs    ################################# [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...
        jfxrt.jar...
  • 查看是否安装好
[root@centos ~]# java -version
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
  • 把Tomcat包解压缩
[root@centos ~]# tar xf apache-tomcat-8.5.43.tar.gz 
  • 移动位置
[root@centos ~]# mv apache-tomcat-8.5.43 /usr/local/
  • 切换到 /usr/local/apache-tomcat-8.5.43 目录下
[root@centos ~]# cd /usr/local/apache-tomcat-8.5.43
  • 切换到/bin 目录下
[root@centos apache-tomcat-8.5.43]# cd bin/
  • 启动Tomcat
[root@centos bin]# ./startup.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-8.5.43
Using CATALINA_HOME:   /usr/local/apache-tomcat-8.5.43
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.43/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/apache-tomcat-8.5.43/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.43/bin/tomcat-juli.jar
Tomcat started.
  • 在浏览器输入http://192.168.60.60:8080 查看Tomcat页面

  • 然后在192.168.60.70 上配置反向代理

    需要注意的是这台虚拟机需要安装好nginx才可以进行下面的操作

  • 切换到 /etc/nginx/conf.d/ 目录下

[root@localhost ~]# cd /etc/nginx/conf.d/
  • 写 proxy.conf 的配置文件
[root@localhost conf.d]# vi proxy.conf
server 
    listen 80;
    server_name www.wlt.com;
    index index.html;
    location / 
        proxy_pass http://192.168.60.60:8080;
        include proxy_params;
    

  • 写 proxy_params 的配置文件
[root@localhost conf.d]# vi /etc/nginx/proxy_params
proxy_redirect  default;
proxy_set_header        Host    $http_host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout   30;
proxy_send_timeout      60;
proxy_read_timeout      60;
proxy_buffer_size       32k;
proxy_buffering on;
proxy_buffers   4       128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size        256k;
  • 查看nginx当前状态
[root@localhost conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  • 重启nginx
[root@localhost conf.d]# nginx -s reload
  • 反向代理配置完成好,在浏览器输入http://www.wlt.com/ ,就可以看到已经反向代理到192.168.60.60:8080

以上是关于配置nginx反向代理的主要内容,如果未能解决你的问题,请参考以下文章

Nginx反向代理常用配置

Nginx配置——单域名反向代理多个端口

nginx配置反向代理解决vue跨域问题

反向代理情况下配置nginx错误页面跳转

nginx反向代理三种模式

Docker 安装 Nexus3,并配置 Nginx 反向代理