Nginx + Tomcat 反向代理,配置失败,求大神解惑! 10C

前提:
二级域名:www.hnrunzhi.com,admin.hnrunzhi.com
http service:Nginx

web service:Tomcat
服务器:Linux
目的:通过Nginx反向代理实现 多个二级域名访问 linux服务器上tomcat上的web项目。
例如:www.hnrunzhi.com 通过Nginx反向代理访问 a项目
www.hnrunzhi.com 通过Nginx反向代理访问 b项目

Nginx的nginx.conf文件如下:

 #设置低权限用户,为了安全而设置的
#user nobody;

#工作衍生进程数
worker_processes 4;

#设置错误文件存放路径
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#设置pid存放路径(pid是控制系统中重要文件)
#pid logs/nginx.pid;

#设置最大连接数
events{
  worker_connections 1024;
}

http {
  #用来设置日志格式
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
  #用来指定日志文件的存放路径
  #access_log /data/wwwlogs/access_nginx.log main;

  #开启高效文件传输模式
  sendfile      on;
  #防止网络阻塞
  tcp_nopush     on;
  #防止网络阻塞
  tcp_nodelay     on;
  #长连接超时时间,单位是秒
  keepalive_timeout  65;
  #散列表的冲突率,默认1024,越大则内存消耗更多,但散列key的冲突率会降低,检索速度就更快
  types_hash_max_size 2048;

  #文件扩展名与文件类型映射表
  include       /usr/local/nginx/conf/mime.types;
  #默认文件类型
  default_type    application/octet-stream;

  #include /etc/nginx/conf.d/*.conf;

  #主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用额代理服务器,默认负载均衡方式为轮询
  upstream tomcat_client {
    server localhost:8080;
  }

  #开启gzip压缩,开启后,访问网页会自动压缩
  #gzip on;

  #指定服务器的名称和参数
  server {
    listen 80;
    server_name www.hnrunzhi.com;
    location / {
      proxy_pass http://tomcat_client;
      proxy_redirect default;
      #设置代理
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
  server {
    listen 80;
    server_name admin.hnrunzhi.com;
    location / {
      proxy_pass http://tomcat_client;
      proxy_redirect default;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}

Tomcat的service.xml文件如下:

 <Service name="Catalina">
        <Connector port="8080" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443" URIEncoding="utf-8"/>

        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

        <Engine name="Catalina" defaultHost="www.hnrunzhi.com">

            <Realm className="org.apache.catalina.realm.LockOutRealm">

                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                resourceName="UserDatabase"/>
            </Realm>

            <Host name="www.hnrunzhi.com" appBase="webapps" unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
                <Context path="/" docBase="/usr/java/apache-tomcat-7.0.79/webapps/Education" reloadable="true"/>
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="www_access_log." suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
            <Host name="admin.hnrunzhi.com" appBase="webapps" unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
                <Context path="/" docBase="/usr/java/apache-tomcat-7.0.79/webapps/RunZhi.M.S" reloadable="true"/>
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="admin_access_log." suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>

        </Engine>
    </Service>

结果:

通过http://www.hnrunzhi.com/ 可以正常访问到Education项目,而http://admin.hnrunzhi.com 报404,需要 http://admin.hnrunzhi.com/RunZhi.M.S/ 这样才能访问

请大牛帮帮忙,瞧瞧看,我哪个地方配置的是不是有问题咯? 谢谢!~~~

0

3个回答

location / {
proxy_pass http://tomcat_client;
proxy_redirect default;
#设置代理
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

把这个地方的地址写清楚,建议不要使用,本地ip有时会发生改变,
0

通过http://www.hnrunzhi.com/ 可以正常访问到Education项目,而http://admin.hnrunzhi.com 报404,需要 http://admin.hnrunzhi.com/RunZhi.M.S/ 这样才能访问
请大牛帮帮忙,瞧瞧看,我哪个地方配置的是不是有问题咯? 谢谢!~~~

0

图片说明我的是这样配置的

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
阿里云配置nginx反向代理tomcat
1、配置tomcat 域名+端口直接访问nn        修改server.xml如下:nn       nnn&amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;n&amp;lt;!--n Licensed to the Apache Software Foundation (ASF) under one or moren contributor license...
windows下配置nginx反向代理tomcat
Nginx下载官方地址:http://nginx.org/en/download.html n下载之后解压后的目录结构是这样的 n n常用的命令: nnginx -v 查看nginx版本 nstart nginx启动nginx命令 nnginx -s reload 修改了配置文件后重新reload nnginx -s stop 立刻停止 nnginx -s quit 优雅地停止 n启动成功后,打开...
nginx+tomcat 实现反向代理配置
一段简单的实现反向代理的代码 -要将请求传递给HTTP代理服务器,则在一个location块内指定proxy_pass指令server { n listen 80; n server_name localhost;
nginx实现Tomcat反向代理
Nginx+Tomcat实现反向代理的案例,里面包括了https的配置,和普通配置。希望能给需要的人带来帮助,启动Tomcat,然后启动呢Nginx就可以直接做测试。100%成功。
nginx反向代理配置(tomcat,node.js)
worker_processes 8;nworker_rlimit_nofile 65535;nnevents {n worker_connections 65535;n}nnnhttp {n include mime.types;n default_type application/octet-stream;nn sendfile on;n...
Ubuntu16.04服务器Nginx配置反向代理tomcat
 nn一、安装Nginxnnn执行命令:sudo apt-get install nginxnnnnUbuntu下安装目录默认:n/usr/sbin/nginx:主程序 n/etc/nginx:存放配置文件 n/usr/share/nginx:存放静态文件 n/var/log/nginx:存放日志nnn安装完成后,Nginx会自动启动,然后在浏览器输入服务器域名或ip访问,出现下面的页面则表示Ng...
同一服务器下配置多域名,去掉Tomcat端口号,Nginx反向代理做转发
1. 开启nginx,资源管理器查看开启是否成功,会有两个nginx.exe进程,浏览器输入127.0.0.1可以访问到nginx欢迎界面。rn2. 在nginx配置文件nginx.conf中配置多个虚拟主机,即server,用于存放不同的域名(server_name),虚拟主机分别监听80端口(默认),转发到不同的tomcat端口。rn3. 将项目分别放在不同的tomcat 下,webapps下
linux+nginx+tomcat通过反向代理实现负载均衡
最近在看一本关于JavaWeb实现网站分布式架构的书,里面提到了通过负载均衡,可以避免由于大规模访问所导致的服务器瘫痪或者由于单一服务器造成的唯一一台服务器故障后,导致用户无法访问等问题。实现负载均衡的方式有很多,有硬件方式,如:F5服务器 或者 软件方式,如:lvs(Linux虚拟服务器)或Nginx。我选择了利用Nginx来实践负载均衡。Nginx简介nginx是通过反向代理的方式实现负载均衡...
nginx反向代理tomcat,由于客户端输入的端口不一致造成网页basehref错误的问题及解决办法
由于端口限制的原因,外网开放的端口是8080,而nginx监听的端口是80,通过端口映射,是外网8080映射至nginx所在主机的80端口上(假设nginx所在主机的ip是192.168.0.1,外网域名是domain.com)。这就导致通过外网访问,浏览器输入的地址是domain.com:8080,而在内网访问则是192168.0.1:80,也就是说,客户端发给nginx的请求的头域中HOST的...
Nginx 反向代理配合Tomcat部署web项目
ps: nginx是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性nn作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型. n作为负载均衡服务器:...
Centos 7 安装nginx 并结合 tomcat 反向代理 负载均衡
下载nginx地址:http://nginx.org/en/download.htmlnn本版本采用1.8版本,如图:nnnnnnnnginx安装nnn安装依赖nyum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-develnnnn2.下载好nginx-1.8.1.tar.gz存
nginx学习(一)简单的反向代理应用 nginx反向代理访问tomcat
nginx学习(一)简单的反向代理应用 nginx反向代理访问tomcat
linux下Nginx反向代理多个tomcat(单独访问或集群配置)
第一步需要在你的服务器上安装Nginx,请查看此文章:https://blog.csdn.net/u013641234/article/details/73838472安装完成以后,启动Nginx,看看是否能够正常访问,然后开始配置Nginx反向代理 : 同一台服务器或多台服务器的多个tomcat,每次转发单独访问某个tomcat配置:1.找到nginx配置文件路径: /usr/local/ngi...
使用Nginx反向代理tomcat服务器
本文主要介绍nginx配置,包含gzip、反向代理tomcat服务、静态资源缓存、动态资源和静态资源分离。
使用Nginx 反向代理,通过域名直接访问Tomcat 8080端口
环境为腾讯云的CentOS 7.5 64位nn①安装nginxnnn[root@VM_0_14_centos ~]# yum install nginx -ynn②修改配置文件nn进入默认配置文件的目录nnn[root@VM_0_14_centos webapp]# cd /etc/nginxnnvim编辑nginx.confnnn[root@VM_0_14_centos nginx]# vim ...
Nginx配置反向代理==如代理多个tomcat服务器(两个tomcat服务器)
1)       配置好两个tomcat服务器(两个tomcat服务器并存,上面有步骤)2)       关闭两个tomcat,分别修改webapps/ROOT/index.jsp文件,主要是区分8080还是81813)       启动两个tomcat4)       关闭nginx5)       在nginx中修改nginx.conf,配置nginx的反向代理,开启nginx,重载6)   ...
Nginx+Tomcat实现反向代理与负载均衡入门
【1】反向代理nn反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器,该服务器就可称之为代理服务器。nn由于代理服务器处在最终处理请求访问的服务器之前,因此可以在代理服务器上做负载均衡。实际上,互联网中也大量的存在反向
Linux下通过nginx反向代理tomcat
环境准备:在windows系统上创建三个CentOS7虚拟机,ip地址分别为192.168.91.128,192.168.91.129,192.168.91.131。nn在前两个虚拟机上配置好tomcat环境,简单搭建个项目,区分开,并分别可以访问。nnnn192.168.91.131作为nginx服务器。nn安装Nginx之前,首先要安装好编译环境gcc和g++,安装Nginx需要PRCE库、z...
nginx做反向代理时,配置其让tomcat的日志获取客户端ip
在nginx的配置文件nginx.conf中配置,加上proxy_set_header X-real-IP $remote_addr。rn server {n listen 80;n server_name www.xxx.cn;nn #charset koi8-r;nn
Nginx 反向代理 多个tomcat,以及图片访问
因为部署的是webpack打包好的前端文件,图片访问可以直接代理阿里云访问nn这里是图片上传到阿里云并获得外网访问路径文章:nn阿里云OSS文件上传存储和删除,获取文件外网访问路径nn只要修改配置文件即可使用,windows下nn文章中两个tomcat中运行的项目都是这个:ssm maven 工程目录以及环境搭建nn安装nginx:下载nn解压nn进入目录右键+SHIFT键进入powershell...
Centos 7 安装nginx 并结合 tomcat 反向代理
下载nginx地址:http://nginx.org/en/download.htmlrnnginx安装rn安装依赖rn1. yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-develrnrnrnrnrnrnrnrn2.下载好nginx-1.8.1.tar.gz存放到 服务器Centos 7 上的 /usr/l
Nginx反向代理配置模板
location / {n proxy_pass http://127.0.0.1:8080;n proxy_redirect off;n proxy_set_header Host $http_host; #传递主机名n proxy_se...
nginx做tomcat代理出现css或js静态资源加载失败或加载一半的问题
Web服务器经常会使用nginx作前置路由,在使用nginx配置Web服务器负载均衡、动静分离,会碰到设置反向代理后导致前端资源无法加载的问题nnnginx反向代理的tomcat服务器导致前端资源css或js加载失败大概可以分为:端口丢失、真实ip或端口获取错误、js或者css太大加载失败等情形nnnn反向代理获取真实ip(域名)、端口、协议nnnginx反向代理后,servlet应用通过req...
详解nginx反向代理+SwitchHost+Tomcat绑定域名配置总结
首先说下具体请求流程:n假设客户端A--------》浏览器url请求域名--------》域名被host解析对应的IP--------》到对应IP的服务器--------》先被nginx反向代理拦截--------》找到nginx上一样域名(nginx.conf配置文件中server里的server_name)--------》对应的反向映射地址(nginx.conf配置文件中同左server
nginx反向代理多个tomcat 配置.解决因404问题js css无法加载问题
首先nginx tomcat 的安装解压.网上资料很多.不予赘述.rn这里主要是使用nginx 实现对多个tomcat的代理配置. 首先nginx 的配置文件为conf/ngins.conf;rn描述场景  有8080端口下Tomcat1下项目A.rn                  有8090端口下tomcat2下项目B.rn                   ......rn通过使用一个域
Nginx+Tomcat实现反向代理
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。n     而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上
nginx设置Tomcat反向代理,并静态资源分离
在linux中运行的tomcat设置nginx代理。 n1、编辑nginx.conf文件。server {n listen 80;n server_name www.demo.com;n charset utf-8;n location / {n root html;
Nginx 反向代理的配置及问题解决
安装及定位配置文件nnUbuntu安装用 apt-get install nginx命令 n用apt-get安装完之后,配置文件一般在\etc\nginxnn可以通过 cat /etc/init.d/nginx查看nginx的区体配置文件路径。nnn # Try to extract nginx pidfile n PID=$(cat /etc/nginx/nginx.conf | grep ...
nginx反向代理tomcat的ssl(https)实现
tomcat的server.xmlnn n <!-- Security listener. Documentation at /docs/config/listeners.htmln n -->n n n n n n nn nn <Resource name="UserDatabase" auth="Container"n type="org.
win7下 使用nginx 反向代理到 tomact
因为tomact 不可以配置域名,所以一般使用 nginx 的反向代理,来配置域名,nn也就是说nn请求  http://www.xxx.com/springboot 的请求  发送到 nginx 服务器, nginx 反向代理 请求 本地的 127.0.0.1:8080  的tomact 的端口,并返回数据nn配置如下nnn#设定http服务器,利用它的反向代理功能提供负载均衡支持nhttp {...
linux上部署tomcat,用Nginx做反向代理,并将Java项目部署到服务器上
(先关闭防火墙和SELinux)n一.部署jdkn1.将jdk下载并移动到Linux的/root上n2.[root@netlab ~]# tar -zxvf jdk....gzn3.将加压后的文件移动到/usr/local下n [root@netlab ~]#mv jdk1.7.0_71/ /usr/localn4配置环境变量n①[root@netlab ~]#cd  /usr/lo
nginx反向代理tomcat程序,资源代码404
nginx简单的反向代理一般是nnnn server{n listen 80;n server_name localhost;n index index.html ;n location / {n proxy_pass http://192.168.1....
后端tomcat不开启https,用nginx反向代理使网站同时支持http和https协议总结
网站架构如下:1、修改nginx配置文件,注释处都是修改要注意的地方        listen 80;n        listen 443 ssl;#添加ssl支持n        server_name localhost;nn        #ssl on;#不要开启,否则只能用https,访问http会报nginx 400错误n...
liunx反向代理tomcat项目 页面操作完成跳转不动态加载最新数据问题
使用nginx反向代理tomcat,项目中完成添加数据操作,跳回列表页面中不显示最新添加数据。问题是nginx对tomcat进行缓存,导致数据没有实时刷新,修改nginx配置nginx.confnnnlocation / {n proxy_buffering off;n proxy_pass http://localhost:8080;n }nn ...
Tomcat捕获Nginx反向代理协议IP及端口配置
最近的技术调整,需要获取Nginx端请求方式是http还是https。我们当前的架构属于典型的互联网架构,Nginx+Tomcat+Mysql,启用了反向代理。当前并没有启用全站https,因此客户端发出的请求基于模块的方式使用http或者https协议。关于捕获这个请求的协议,我们需要使用到Nginx ngx_http_proxy_module这个模块中的proxy_set_header指令来进行
关于nginx+tomcat搭建反向代理时加载静态资源找不到的问题
1 、在配置nginx的反向代理时在localtion下需要rnrnrnrnrnupstream tomcat_nginx{rn   server 127.0.0.1:8888;rn  server 127.0.0.1:8889;rn}rnrnrnlocation / {rnrnrnrnrn            proxy_pass http://tomcat_nginx;rn         
tomcat配置编码,nginx代理
Tomcat\conf\server.xml中找到:rnHTTP/1.1"  connectionTimeout="20000"  redirectPort="8443"/>rn改成:rnHTTP/1.1"  connectionTimeout="20000"  redirectPort="8443"  URIEncoding="UTF-8"/>rn就可以了rnnginxrnNginx ("eng
Tomcat Server.xml在nginx反向代理场景中配置
server.xml默认配置为rnrn如果webapps中存在多个项目,比如ProA,ProB.此场合下nginx常规配置会导致除了tomcat主页外其他项目页面js/css/png等缺失.尤其是用了spring的静态资源的映射,比如rnNginx常规配置rnservern  {n    listen 80;n    server_name localhost;n    index index.h
Nginx 反向代理实现 分布式 国际化 tomcat session 问题
本文没用i18国际化方案,直接一个语言做一套WEB前端。n相对i18,虽工作量大,但样式风格可以本土化,推广规则可以独立等等,需求因素。就此略过。nnnnn部署两台服务器:中文项目192.168.1.85、英文项目192.168.1.79nNginx:192.168.1.88nnhttp://192.168.1.88/          指向:192.168.1.85nhttp
nginx反向代理+tomcat(nginx转发规则和实现负载均衡)
有时候想通过nginx实现反向代理,分别根据不同的url映射到不同的tomcat服务器,已达到在一台服务器挂多个网站和应用的目的。rnrnrn1)最简单的就是修改下nginx安装目录的nginx.conf文件:rn原来的文件一部分是:rn server {n listen 80;n server_name localhost;nn #char
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java大神班 大数据大神班