百度到的问题解决BLOG
nginx+2台tomcat负载均衡,应用程序已部署,单独访问tomcat时,可以访问到所需要的页面,配置负载均后,访问不到内容
## 配置反向代理的后端tomcat集群
upstream web_server{
server 172.27.14.200:8080 weight=1 max_fails=2 fail_timeout=30s;
server 172.27.14.200:8090 weight=1 max_fails=2 fail_timeout=30s;
}
      #注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
      proxy_temp_path /data0/proxy_temp_dir;
      #设置Web缓存区名称为cache_one,内存缓存空间大小为50MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为10GB。
      proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=10g;
server
     {
         listen       80;
         server_name  web_server;  
         #自动补全"/"
         if (-d $request_filename)
        {
         rewrite ^/(.*)([^/])$ http://$host/$1$2/ last;
         }
        #实现网页动静态分离
         location /
        {
          root /data0/htdocs/tomcat;
          index index.html index.htm;
                         if (!-f $request_filename)
                        {
                         rewrite ^/([a-zA-Z]+).html  /$1.jsp last;
                         proxy_pass http://web_server;
                         break;
                         }
           }
 
server {
listen 80;
server_name web_server;
## 网页、视频、图片文件从本地读取,且定义在浏览器中缓存30天静态文件
location ~.*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://web_server; ##此处蓝色内容应该可以用指定路径的方法访问,我写入的是tomcat下应用的目录,还是报错,暂未解决。。。
expires 30d;
}
## js、css文件从本地读取,且定义在浏览器中缓存1小时
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存  内容到二级缓存目录内
location ~ .*\.(js|css)?$
{
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://web_server; ##此处蓝色内容应该可以用指定路径的方法访问,我写入的是tomcat下应用的目录,还是报错,暂未解决。。。
expires 1h;
}
 ## 动态文件转发到后端的tomcat集群
location ~ .*\.(php|jsp|cgi|jhtml|action)?$
{
proxy_pass http://web_server;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
#charset koi8-r;
 
#access_log logs/host.access.log main;
 
location / {
root html;
index index.html index.htm;
}
 
以下内容可以加入静态文件的配置中,本次搭建未配置。
     #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到 upstream负载均衡池中的另一台服务器,实现故障转移。
       proxy_next_upstream http_502 http_504 error timeout invalid_header;
       proxy_cache cache_one;
       #对不同的HTTP状态码设置不同的缓存时间
       proxy_cache_valid 200 10m;
       proxy_cache_valid 304 1m;
       proxy_cache_valid 301 302 1h;
       proxy_cache_valid any 1m;
 
         编辑tomcat的配置文件server.xml
         在Hosts文件里面加上如下字段:
         <Context path="" docBase="/data0/htdocs/tomcat/ROOT" debug="0" reloadable="true" />
          解释:tomcat默认回去"webapps"目录去查找要访问的文件,如果没有找到就去"docBase"目录去寻找。这个这段也可以不加,自己随意。此处应该是

Nginx+tomcat负载均衡时静态页面报404的更多相关文章

  1. nginx+tomcat负载均衡

    最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...

  2. Nginx+Tomcat负载均衡、动静分离群集

    Nginx+Tomcat负载均衡.动静分离群集 目录 Nginx+Tomcat负载均衡.动静分离群集 一.Tomcat 1. Tomcat简介 2. Tomcat重要目录 二.Nginx负载均衡原理 ...

  3. Nginx + Tomcat 负载均衡配置详解

    Nginx常用操作指南一.Nginx 与 Tomcat 安装.配置及优化1. 检查和安装依赖项 yum -y install gcc pcre pcre-devel zlib zlib-devel o ...

  4. 解决docker中使用nginx做负载均衡时并发过高时的一些问题

    # 解决docker中使用nginx做负载均衡时并发过高时的一些问题 1.问题产生原因: 由于通过nginx作为负载均衡服务,在访问并发数量达到一定量级时jmeter报错. nginx日志关键信息:a ...

  5. linux+nginx+tomcat负载均衡,实现session同步

    linux+nginx+tomcat负载均衡,实现session同步 花了一个上午的时间研究nginx+tomcat的负载均衡测试,集群环境搭建比较顺利,但是session同步的问题折腾了几个小时才搞 ...

  6. 解决nginx配置负载均衡时invalid host in upstream报错

    当前平台: windows nginx版本: 1.11.5 前言: 在配置负载均衡时,同时也需要设置反向代理,当修改了nginx.conf时,发现nginx服务无法开启. 1. 打开"ngi ...

  7. nginx+tomcat负载均衡策略

    測试环境均为本地,測试软件为: nginx-1.6.0,apache-tomcat-7.0.42-1.apache-tomcat-7.0.42-2.apache-tomcat-7.0.42-3 利用n ...

  8. Linux下Nginx+Tomcat负载均衡和动静分离配置要点

    本文使用的Linux发行版:CentOS6.7 下载地址:https://wiki.centos.org/Download 一.安装Nginx 下载源:wget http://nginx.org/pa ...

  9. nginx+tomcat负载均衡和session复制

    本文介绍下传统的tomcat负载均衡和session复制. session复制是基于JVM内存的,当然在当今的互联网大数据时代,有更好的替代方案,如将session数据保存在Redis中. 1.安装n ...

随机推荐

  1. Spark Streaming源码解读之数据清理内幕彻底解密

    本期内容 : Spark Streaming数据清理原理和现象 Spark Streaming数据清理代码解析 Spark Streaming一直在运行的,在计算的过程中会不断的产生RDD ,如每秒钟 ...

  2. 一个最小mybatis

    项目结构 package hello; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis ...

  3. Json与Bean互转,Timestamp类型的问题

    Json与Java Bean互相转换时,Bean中的Timestamp字段是无法直接处理的,需要实现两个转换器. DateJsonValueProcessor的作用是Bean转换为Json时将Time ...

  4. AIX 环境下减小系统page space空间

    IBM AIX v5.3操作系统环境下减小系统page space空间详细步骤如下 1,创建一个临时的page space空间#mkps -a -n -s 20 rootvg 这里-a参数指定页面空间 ...

  5. Tomcat 实现双向SSL认证

    大概思路: 使用openssl生产CA证书,使用keytool生产密钥库 实验环境:RHEL6.4+Tomcat8 一.生成CA根证书,并自签名 1.生成CA密钥 # genrsa [产生密钥命令] ...

  6. PHP判断请求是否是ajax请求

    首先看一下框架里面是怎样判断的.ThinkPHP:define('IS_AJAX', ((isset($_SERVER['HTTP_X_REQUESTED_WITH']) && str ...

  7. UVa 488 - Triangle Wave

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=s ...

  8. Spring里PropertyPlaceholderConfigurer类的使用

    1. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostProcessor接口的一个实现.PropertyPlaceho ...

  9. linux 学习 软件工具

    _____secureCRT 远程通信工具 第二行第二个快速连接,输入主机名,即ip地址,和用户名,root .其它默认:端口22,协议ssh2,防火墙 none. 保存会话,连接.需要输入用户密码. ...

  10. SQL server 2005中的锁(1)

    在之前的一片随笔中,简单的说了一下SQL Server中的隔离级别.而SQL Server的隔离级别是通过锁的机制来实现的.现在深入一下,谈谈SQL Server中的锁. 开始之前,先要定义一下前提: ...