• nginx实现反向代理 switchhosts tomacat


    Nginx 是一个高性能的HTTP反向代理服务器

    工具下载:

    nginx下载地址:https://nginx.org/en/download.html (建议下载稳定版)

    switchhosts下载地址:https://pan.baidu.com/s/1ddj3WSi-XBO4KB3olEnDEQ(由于hosts的文件路径比较隐蔽,使用switchhosts更加便捷,该软件主要带有两个功能:编辑hosts和切换hosts)

    tomcat下载地址:https://tomcat.apache.org/download-90.cgi

    正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。

    反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

     

    接下来实现反向代理

    举例说明:

    域名和ip的对应 127.0.0.1 8081.max.com    127.0.0.1 8082.max.com(步骤一)

    端口号:8081;8082(步骤二)

    1.使用switchhosts工具修改hosts文件中配置的域名和ip的对应关系

    2.修改tomcat文件下的server.xml(以我安装的路径为例)

    为tomcat添加端口:(默认端口号8080)

    <Server port="8005" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
      <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
      <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>
      <Service name="Catalina">
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
        <Engine name="Catalina" defaultHost="localhost">
          <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t "%r" %s %b" />
          </Host>
        </Engine>
      </Service> 
      <Service name="tomcatserver1">
        <Connector port="8081" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
        <Engine name="Catalina" defaultHost="localhost">
          <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>
          <Host name="localhost"  appBase="webapps2"
                unpackWARs="true" autoDeploy="true">
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t "%r" %s %b" />
          </Host>
        </Engine>
      </Service>
      <Service name="tomcatserver2">
        <Connector port="8082" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Connector port="8012" protocol="AJP/1.3" redirectPort="8443" />
        <Engine name="Catalina" defaultHost="localhost">
          <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>
          <Host name="localhost"  appBase="webapps3"
                unpackWARs="true" autoDeploy="true">
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t "%r" %s %b" />
          </Host>
        </Engine>
      </Service>
    </Server>
    

    红色为默认部分,蓝色为添加部分,区分默认部分的位置颜色嵌套;

    问题来了:我们tomcat文件中并没有webapps2,webapps3那么需要我们复制webapps

    复制后的状态:

    3.我们需要解决的是如何使nginx与tomcat服务器进行连接

    那么就需要配置nginx.conf,路径与我的安装路径为例

    #user  nobody;
    worker_processes  1;
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    	upstream tomcatserver1{
    		server 172.0.0.1:8081;
    	}
    	upstream tomcatserver2{
    		server 172.0.0.1:8082;
    	}
        server {
            listen       80;
            server_name  8081.max.com;
            location / {
               #root   html;
               #index  index.html index.htm;
    	  proxy_pass http://tomcatserver1;
    		}       
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
     server {
            listen       80;
            server_name  8082.max.com;
    
            location / {
                #root   html1;
                #index  index.html index.htm;
    	  proxy_pass   http://tomcatserver2;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html1;
            } 
        }
    }
    重新启动tomcat,运行nginx,访问8081.max.com;和8082.max.com
    出现的结果如图

    执行成功

    
    
  • 相关阅读:
    flutter 布局
    常见错误
    xpath
    bzoj1485 [HNOI2009]有趣的数列 卡特兰数
    博弈 Nim问题 POJ2234
    bzoj 1014 [JSOI2008]火星人prefix
    codevs 1743 反转卡片 rope or splay
    bzoj 2326 矩阵乘法
    bzoj 1702 贪心,前缀和
    bzoj 1700 Problem Solving 解题 dp
  • 原文地址:https://www.cnblogs.com/zandz/p/8810136.html
Copyright © 2020-2023  润新知