nginx+Tomcat实现动静分离架构

最近新部署了一个项目jlj-cms-erp-web,要求使用nginx+Tomcat将静态页面和动态的请求分开处理,减轻Tomcat服务器的压力

在部署项目的这台机器上(192.168.1.110)并没有nginx,所以还需要将这台机器上生成的静态页面备份到装有nginx的另一台机器上(192.168.1.191)

首先安装tomcat,具体过程不详细写了,见博客

http://itzhongxin.blog.51cto.com/12734415/1915155

注意修改端口号、jvmRoute、Context path、启动内存,

在项目下的webapps文件夹中新建一个www文件夹,该文件夹中的文件将被备份

我们用rsync命令来实现两台机器之间的备份,先配置被备份端,就是没有安装nginx的机器

安装依赖包

apt-get update
apt-get install gcc
apt-get install make
tar -zxvf rsync-3.1.2.tar.gz 
cd rsync-3.1.2
./configure --prefix=/usr/local/rsync && make && make install

安装完成后在/usr/local/rsync目录下应该产生bin share两个目录
然后在当前目录下创建log、pid、conf、password 分别存放日志、程序进程号、配置文件、密码

设置配置文件

vim rsyncd.conf
use chroot = nomax 
connections = 10
pid file = /usr/local/rsync/pid/rsyncd.pid
log file = /usr/local/rsync/log/rsyncd.log
[www]     #随便起的名字,但是要与备份端相同!
uid = root
gid = root
path = /opt/tomcat8.0.24/jlj-cms-erp-web/webapps/www  #需要备份的路径
comment = wwwbackup
read only = no
#write only = no
list = yes
hosts allow = 192.168.1.191/24   #备份到此机器上
hosts dengy = *
auth users = backup
secrets file = /usr/local/rsync/password/server.pass   #密码文件路径

设置密码文件

vim server.pass 
backup:BACKup_194

修改密码文件权限

chmod 600 server.pass

启动rsync服务

/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/conf/rsyncd.conf

过滤程序是否启动成功

ps -ef | grep rsync
root 22620  1  0 15:17 ?  00:00:00 ./bin/rsync --daemon --config=/usr/local/rsyn/conf/rsyncd.conf

然后在/opt/tomcat8.0.24/jlj-cms-erp-web/webapps/www下解压一个site.zip包,该文件夹中有大量静态HTML文件,我们需要将他同步到192.168.1.191上

接下来配置备份端,同上

安装完成后在/usr/local/rsync目录下应该产生bin share两个目录
创建pwd目录存放密码文件

vim server.pass 
BACKup_194

修改密码文件权限

chmod 600 server.pass

在/var/www下新建一个jljapp文件夹,将东西备份到该路径下

测试一下,是否能备份成功

rsync -vzrtopg --progress --password-file=/usr/local/rsync/pwd/server.pass [email protected]::
www
 /var/www/jljapp

*此处标红必须与被备份端中rsync.conf中模块名相同

看一下备份路径中有没有成功的备份到我们需要的东西

cd /var/www/jljapp
ll

如果备份成功,编写一个脚本

cd /usr/local/rsync/bin
vim rsyncback_110_www.sh
#!/bin/sh
/usr/bin/rsync -vzrtopg --progress --password-file=/usr/local/rsync/pwd/server.pass [email protected]::www /var/www/jljapp

修改脚本权限

chmod a+x rsyncback_110_www.sh

制定任务计划,设定每周五晚上8点执行同步任务

#每隔五分钟,备份110cms产生的html
*/5 * * * *  /bin/sh /usr/local/rsync/bin/rsyncback_110_www.sh

备份工作完成了,接下来就是nginx将请求转发到tomcat上了

在被备份端,也就是192.168.1.110上部署项目jlj-cms-erp-web

将项目包解压到/opt/tomcat8.0.24/jlj-cms-erp-web/webapps下,将压缩包删除

启动项目,查看日志

cd bin/
./startup.sh 
tail -f ../logs/catalina.out

在nginx机器上绑定域名,nginx收到客户端的访问请求,就根据地址转发到对应的tomcat服务器上

现在的需求是有三个域名,需要三个配置文件

cms.erp.jinlejia.com
cmsstyle.erp.jinlejia.com
mhelp.erp.jinlejia.com

需要修改nginx的配置文件,新建一个jljapp文件夹,放三个配置文件

cd /etc/nginx/conf.d
mkdir jljapp

复制一个之前项目配置好的文件来修改

cp group_js.conf jljapp/mhelp.conf
vim mhelp.conf
server {    
    listen      80;
    server_name  mhelp.erp.jinlejia.com;
    root   /var/www/jljapp/site/help;
    index  index.html index.htm;
       location / {
    }
    error_page  404 500 502 503 504  /404.html;
        location = /404.html {
        root   /usr/share/nginx/html;
    }
}
cp mhelp.conf cmsstyle.confvim cmsstyle.conf
server {
    listen      80;
    server_name cmsstyle.erp.jinlejia.com;
    root   /var/www/jljapp;
    index  index.html index.htm;
    location / {
    }
    error_page  404 500 502 503 504  /404.html;
        location = /404.html {
        root   /usr/share/nginx/html;
    }
}
cp sso.conf  jljapp/cms.confcd jljapp/vim cms.conf 
upstream jljappcms {
    server 192.168.1.110:8010  weight=20 max_fails=2 fail_timeout=30s;
                  ip_hash;
}
server {
    listen       80;
    server_name cms.erp.jinlejia.com;
    root   /Disk/var/www/index;
    index  index.html index.htm;
    proxy_max_temp_file_size 0;
    large_client_header_buffers 4 16k;
    client_max_body_size 300m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    proxy_send_timeout 600;
     proxy_buffering on;
    proxy_buffer_size 64k;
    proxy_buffers   32 64k;
    proxy_busy_buffers_size 128k;
    location / {
    proxy_pass      http://jljappcms;
    proxy_set_header HOST   $host;
    proxy_set_header X-Real-IP      $remote_addr;
    proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;
        }
    #error_page   500 502 503 504  /50x.html;
    #location = /50x.html {
    #root   /usr/share/nginx/html;
            }
}

最后修改主配置文件,在最后一行添加,当nginx加载配置文件时,自动加载include中的子配置文件

vim nginx.conf
include /etc/nginx/conf.d/jljapp/*.conf;

重启一下nginx

service nginx restart
时间: 2024-11-03 01:18:18

nginx+Tomcat实现动静分离架构的相关文章

nginx+tomcat实现动静分离

一.构建java语言环境Jdk用于设置java程序运行环境,当需要运行java语言时,则必须先设置jdk环境.1. 获取二进制文件.# sh jdk-6u32-linux-x64.bin# mv jdk1.6.0_32/ /usr/local/jdk2.给jdk1.6.0_32/做软链接,方便jdk更新# ln -s /usr/local/jdk/ java3.设置java命令运行环境,并使其生效.# vim /etc/profileexport JAVA_HOME=/usr/local/jdk

Nginx自学手册(六)Nginx+Tomcat实现动静分离

(一)简述 Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Tomcat为例说明. (二)环境简介 服务器名称 IP 备注 Nginx服务器 192.168.180.4 Tomcat服务器 192.168.180.23 client 192.168.181.231 客户端访问 (三)具体步骤:

nginx+tomcat实现动静分离(转)

本文设计的动静分离结构 在本文中,我们将静态资源放在 A 主机的一个目录上,将动态程序放在 B 主机上,同时在 A 上安装 Nginx 并且在 B 上安装 Tomcat.配置 Nginx,当请求的是 html.jpg 等静态资源时,就访问 A 主机上的静态资源目录:当用户提出动态资源的请求时,则将请求转发到后端的 B 服务器上,交由 Tomcat 处理,再由 Nginx 将结果返回给请求端. 提到这,可能有您会有疑问,动态请求要先访问 A,A 转发访问 B,再由 B 返回结果给 A,A 最后又将

HTTP/NGINX+TOMCAT实现动静分离

什么是TOMCAT? Tomcat和其他web服务器一样,可以响应HTML的请求,实际上Tomcat是Apache的服务器的扩展,但是运行时他是独立运行的.另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式,但是它的静态页面处理能力比较差.可以使用动静分离来提高站点性能. JAVA Java的技术体系有三个分类:java2SE,java2EE,jave2ME(移动开发).jdk其实相当于java2SE.java2EE相当于是在jdk中添加了一些企业级类库,

Nginx+Tomcat实现动静分离和负载均衡

一.动静分离 Nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是将动态请求和静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面.动静分离从目前实现角度来讲大致分为两种,一种是纯粹的把静态文件放在独立的服务器上,独立出来用域名访问,也是目前主流推崇的方案:另外一种方法就是动态跟静态文件混合在一起部署,通过Nginx来分开. 为什么要动静分离? Tomcat是一个比较全面的web容器,对静态网页的处理,应

nginx+tomcat做动静分离配置+nginx+SSL

user  nobody; worker_processes  8; #pid        logs/nginx.pid; events { worker_connections  1024; } http { include       mime.types; default_type  application/octet-stream; log_format  main  '$remote_addr - $remote_user [$time_local] "$request"

Linux深入篇之四:构建Nginx+Tomcat动静分离架构

Linux深入篇之四:构建Nginx+Tomcat动静分离架构 Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是:动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat.Resin处理动态页面. 动静分离从目前实现角度来讲大致分为两种: 一种是纯粹的把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案: 另外一种方法就是动态跟静态文件混合在一起发布,通过nginx来分开. 具体怎么来实现

Nginx+Tomcat动静分离架构

Nginx+Tomcat动静分离架构 Nginx+tomcat是目前主流的java web架构,Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat.Resin出来动态页面. 动静分离从目前实现角度来讲大致分为两种,一种是纯粹的把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案:另外一种方法就是动态跟静态文件混合在一起发布,通过ngin

nginx+tomcat实现动静页面分离

实现nginx和tomcat动静页面分离 实验拓扑: 公司内部需要搭建web集群,并且网站有静态页面和.jsp(java语言开发)的页面,现要求分别搭建处理这两种页面的不同服务到web群集中,并且实现调度器的备份,保证调度器的稳定: 实验环境: 服务器名称 IP地址 所需软件 Tomcat1 192.168.100.154 jdk-7u65-linux-x64.gz apache-tomcat-7.0.54.tar.gz Tomcat2 192.168.100.155 jdk-7u65-linu