网站制作与设计,最近的新闻内容,福州网站设计十年乐云seo,网页在线制作图片Nginx 反向代理案例2
1. 实现效果
实现效果#xff1a;使用 nginx 反向代理#xff0c;根据访问的路径跳转到不同端口的服务中
nginx 监听端口为 8001#xff0c;
访问 http://127.0.0.1:8001/edu/ 直接跳转到 127.0.0.1:8081
访问 http://127.0.0.1:8001/vod/ 直接跳转到 …Nginx 反向代理案例2
1. 实现效果
实现效果使用 nginx 反向代理根据访问的路径跳转到不同端口的服务中
nginx 监听端口为 8001
访问 http://127.0.0.1:8001/edu/ 直接跳转到 127.0.0.1:8081
访问 http://127.0.0.1:8001/vod/ 直接跳转到 127.0.0.1:8082a. 第一步两个tomcat端口和测试页面 准备两个 tomcat一个 8081 端口一个 8082 端口。 在**/tools/下 新建tomcat8081和tomcat8082两个文件夹将 Tomcat安装包 分别上传到两个文件夹进行解压缩安装8081的Tomcat只改一个http协议默认端口号** 就行直接启动即可。 这里需要改8082的端口号需要修改三个端口只修改一个端口号的话是启动不了的我已经测试过了如果只修改http协议默认端口的话8081和8082只会启动一个。因为默认的都是8080没有的直接创建文件夹好多都是刚建的与上面的第一个示例示例有点改动 1、tomcat8081 解压包 2、使用命令 编辑 文件 /conf/server.xml 文件 vi server.xml 3、修改后如下 3.1、修改server 的默认端口由默认8005-8091 3.2、修改http协议的默认端口由默认的8080-8081 修改默认ajp协议的默认端口由默认的8009-9001
tomcat8082(注意其实和上面修改的地方一样) 使用命令 编辑 文件 /conf/server.xml 文件 vim server.xml 修改后的完整文件如下自己可以核对
?xml version1.0 encodingUTF-8?
!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements. See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the License); you may not use this file except in compliance withthe License. You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an AS IS BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
--
!-- Note: A Server is not itself a Container, so you may notdefine subcomponents such as Valves at this level.Documentation at /docs/config/server.html--
Server port8092 shutdownSHUTDOWNListener classNameorg.apache.catalina.startup.VersionLoggerListener /!-- Security listener. Documentation at /docs/config/listeners.htmlListener classNameorg.apache.catalina.security.SecurityListener /--!-- APR library loader. Documentation at /docs/apr.html --Listener classNameorg.apache.catalina.core.AprLifecycleListener SSLEngineon /!-- Prevent memory leaks due to use of particular java/javax APIs--Listener classNameorg.apache.catalina.core.JreMemoryLeakPreventionListener /Listener classNameorg.apache.catalina.mbeans.GlobalResourcesLifecycleListener /Listener classNameorg.apache.catalina.core.ThreadLocalLeakPreventionListener /!-- Global JNDI resourcesDocumentation at /docs/jndi-resources-howto.html--GlobalNamingResources!-- Editable user database that can also be used byUserDatabaseRealm to authenticate users--Resource nameUserDatabase authContainertypeorg.apache.catalina.UserDatabasedescriptionUser database that can be updated and savedfactoryorg.apache.catalina.users.MemoryUserDatabaseFactorypathnameconf/tomcat-users.xml //GlobalNamingResources!-- A Service is a collection of one or more Connectors that sharea single Container Note: A Service is not itself a Container,so you may not define subcomponents such as Valves at this level.Documentation at /docs/config/service.html--Service nameCatalina!--The connectors can use a shared executor, you can define one or more named thread pools--!--Executor nametomcatThreadPool namePrefixcatalina-exec-maxThreads150 minSpareThreads4/--!-- A Connector represents an endpoint by which requests are receivedand responses are returned. Documentation at :Java HTTP Connector: /docs/config/http.htmlJava AJP Connector: /docs/config/ajp.htmlAPR (HTTP/AJP) Connector: /docs/apr.htmlDefine a non-SSL/TLS HTTP/1.1 Connector on port 8082--Connector port8082 protocolHTTP/1.1connectionTimeout20000redirectPort8443 /!-- A Connector using the shared thread pool--!--Connector executortomcatThreadPoolport8082 protocolHTTP/1.1connectionTimeout20000redirectPort8443 /--!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443This connector uses the NIO implementation. The defaultSSLImplementation will depend on the presence of the APR/nativelibrary and the useOpenSSL attribute of the AprLifecycleListener.Either JSSE or OpenSSL style configuration may be used regardless ofthe SSLImplementation selected. JSSE style configuration is used below.--!--Connector port8443 protocolorg.apache.coyote.http11.Http11NioProtocolmaxThreads150 SSLEnabledtrueSSLHostConfigCertificate certificateKeystoreFileconf/localhost-rsa.jkstypeRSA //SSLHostConfig/Connector--!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2This connector uses the APR/native implementation which always usesOpenSSL for TLS.Either JSSE or OpenSSL style configuration may be used. OpenSSL styleconfiguration is used below.--!--Connector port8443 protocolorg.apache.coyote.http11.Http11AprProtocolmaxThreads150 SSLEnabledtrue UpgradeProtocol classNameorg.apache.coyote.http2.Http2Protocol /SSLHostConfigCertificate certificateKeyFileconf/localhost-rsa-key.pemcertificateFileconf/localhost-rsa-cert.pemcertificateChainFileconf/localhost-rsa-chain.pemtypeRSA //SSLHostConfig/Connector--!-- Define an AJP 1.3 Connector on port 9002 --!--Connector protocolAJP/1.3address::1port9002redirectPort8443 /--!-- An Engine represents the entry point (within Catalina) that processesevery request. The Engine implementation for Tomcat stand aloneanalyzes the HTTP headers included with the request, and passes themon to the appropriate Host (virtual host).Documentation at /docs/config/engine.html --!-- You should set jvmRoute to support load-balancing via AJP ie :Engine nameCatalina defaultHostlocalhost jvmRoutejvm1--Engine nameCatalina defaultHostlocalhost!--For clustering, please take a look at documentation at:/docs/cluster-howto.html (simple how to)/docs/config/cluster.html (reference documentation) --!--Cluster classNameorg.apache.catalina.ha.tcp.SimpleTcpCluster/--!-- Use the LockOutRealm to prevent attempts to guess user passwordsvia a brute-force attack --Realm classNameorg.apache.catalina.realm.LockOutRealm!-- This Realm uses the UserDatabase configured in the global JNDIresources under the key UserDatabase. Any editsthat are performed against this UserDatabase are immediatelyavailable for use by the Realm. --Realm classNameorg.apache.catalina.realm.UserDatabaseRealmresourceNameUserDatabase//RealmHost namelocalhost appBasewebappsunpackWARstrue autoDeploytrue!-- SingleSignOn valve, share authentication between web applicationsDocumentation at: /docs/config/valve.html --!--Valve classNameorg.apache.catalina.authenticator.SingleSignOn /--!-- Access log processes all example.Documentation at: /docs/config/valve.htmlNote: The pattern used is equivalent to using patterncommon --Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogsprefixlocalhost_access_log suffix.txtpattern%h %l %u %t quot;%rquot; %s %b //Host/Engine/Service
/Server
并准备好测试的页面 写一个a.html页面 tomcat8081的tomcat放到目录 /webapp/vod 下内容
h1nginx-8081!!!/h1
tomcat8082的tomcat放到目录 /webapp/edu 下内容
h1nginx-8082!!!/h1测试页面 b. 第二步修改 nginx 的配置文件 修改 nginx 的配置文件 在 http 块中添加 server{} 修改其中注释的就行。 server {listen 8001; #server_name localhost;server_name 172.31.0.99; #charset koi8-r;#access_log logs/host.access.log main;location ~ /vod/ {proxy_pass http://172.31.0.99:8081;}location ~ /edu/ {proxy_pass http://172.31.0.99:8082;}}开发的端口 nginx监听端口8001tomcat8081端口8081tomcat8082端口8082。 测试结果: location 指令说明
该指令用于匹配 URL。
语法如下1、 用于不含正则表达式的 uri 前要求请求字符串与 uri 严格匹配如果匹配 成功就停止继续向下搜索并立即处理该请求。
2、~用于表示 uri 包含正则表达式并且区分大小写。
3、~*用于表示 uri 包含正则表达式并且不区分大小写。
4、^~用于不含正则表达式的 uri 前要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后立即使用此 location 处理请求而不再使用 location 块中的正则 uri 和请求字符串做匹配。注意如果 uri 包含正则表达式则必须要有 ~ 或者 ~*标识。