文档章节

Resin+Nginx动静分离和负载均衡

乐搏学院
 乐搏学院
发布于 2017/04/17 13:41
字数 1228
阅读 13
收藏 0

案例:目前很多人喜欢Nginx+tomcat动静分离,或者反代后端tomcat集群,不过很多人也喜欢用Resin。

本人花了些功夫总结了Resin和tomcat区别:

 

特性\容器

resin

tomcat

公司

CAUCHO

Apache

是否收费

不完全免费(pro版本收费)

完全免费

Eclipse下调试开发

适中

复杂

性能

轻量级,pro版本支持负载均衡,以及缓存功能

轻量级(NIO模式性能高些),支持负载均衡

多实例

略麻烦

比较简单

集群部署

支持

支持

是否支持php

新版本支持(但很少用)

默认不支持(可配置)

用户喜好

略少

略多

常用组合

Nginx+Resin or+其它

Nginx+tomcat+or其它

报错机制

简单

复杂

标准|开发|行为喜好

两者在标准支持,开发使用,用户喜好有很大关系

常用JavaEE容器有很多:Tomcat、Resin、JBoss、Glassfish ,注意weblogic属于应用服务器。

1、安装配置Resin:

1.1)jdk目录创建:

1

2

3

4

5

6

7

8

9

[root@resin ~]# tar zxvfjdk-7u75-linux-x64.tar.gz

[root@resin ~]# mkdir/usr/local/jdk1.7

[root@resin ~]# mvjdk1.7.0_75/* /usr/local/jdk1.7/

[root@resin ~]# cat/etc/profile.d/jdk.sh 

export JAVA_HOME=/usr/local/jdk1.7/

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

exportPATH=$PATH:$JAVA_HOME/bin

export JAVA_HOMECLASSPATH PATH

[root@resin ~]#

1.2)Resin安装配置:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[root@resin ~]# yum install ntpdate -y

[root@resin~]# ntpdate time.windows.com安装resin

[root@resin~]# tar xf resin-4.0.50.tar.gz -C /usr/local/

[root@resin~]# cd /usr/local

[root@resin~]# #./configure --prefix=/usr/local/resin

[root@resin~]# #make

[root@resin ~]# #make install

[root@resin local]# ln -s resin-4.0.50 resin

[root@resin local]#cat / etc/profile.d/resin.sh 

exportRESIN_HOME=/usr/local/resin

[root@resin local]#

[root@resin local]#cp /usr/local/resin/bin/resin.sh /etc/init.d/resin

[root@resin local]#chmod +x /etc/init.d/resin

[root@resin local]#/etc/init.d/resin start

wKioL1iipR3A9JKIAAEMwGUHI8g203.png

1.3)首页访问:

wKioL1iipWGwgVtWAAA3GJlrWQY907.png

1.4)配置多个项目:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

[root@resin ~]# cd /usr/local/resin/conf

[root@resin conf]# vim resin.xml

#配置多个项目:

<clusterid="app1">

<!-- define the servers in the cluster -->

<server-multiid-prefix="app1"address-list="${app1_servers}"port="6800"/>  //端口1

<!-- the default host, matching any host name -->

<hostid=""root-directory=".">

<web-appid="/"root-directory="/usr/local/resin/webapps/app1"/>   //项目1

</host>

</cluster>

<clusterid="app2">

<!-- define the servers in the cluster -->

<server-multiid-prefix="app2"address-list="${app2_servers}"port="6801"/> //端口2

<!-- the default host, matching any host name -->

<hostid=""root-directory=".">

<web-appid="/"root-directory="/usr/local/resin/webapps/app2"/> //项目2

</host>

</cluster>

1.4.1)定义端口:

1

2

3

4

5

# app-tier Triad servers: app-0 app-1 app-2 

app1_servers      : 127.0.0.1:6800 

app2_servers      : 127.0.0.1:6801 

app1.http          : 8080 

app2.http          : 8081

1.5)JDBC配置:

1

2

3

4

5

6

7

8

9

10

11

<database>

<jndi-name>jdbc/test</jndi-name>

<driver type="com.microsoft.jdbc.sqlserver.SQLServerDriver">

<url>jdbc:microsoft:sqlserver://localhost:3306;databasename=Northwind</url>  //后端数据库

<user>sa</user>

<password>password</password>  //密码

</driver>

<prepared-statement-cache-size>8</prepared-statement-cache-size>

<max-connections>20</max-connections>

<max-idle-time>30s</max-idle-time>

</database>

注意:jdbc文件可自己定义,需要导入相应的驱动包。

2、安装配置Nginx:

 

1

2

3

4

useradd nginx -M -s /sbin/nologin

tar xf nginx-1.9.2.tar.gz

cd nginx-1.9.2

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx  --with-http_stub_status_module--with-http_ssl_module --with-http_realip_module  --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module&&make &&make install

2.1)nginx.conf配置负载均衡:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

user  nginx; 

 

worker_processes  8;

 

#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

 

error_log  logs/error.log  info;

 

pid        /var/run/nginx.pid;

 

events {

use epoll;

worker_connections  1024;

}

 

http {

include       mime.types;

 

default_type  application/octet-stream;

 

charset UTF-8;

 

server_names_hash_bucket_size 128;

 

client_header_buffer_size 32k;

 

large_client_header_buffers 4 32k;

 

client_max_body_size 8m;

 

#limit_conn_zone $binary_remote_addr zone=one:32k;

#limit_conn_zone $binary_remote_addr zone=permitip:10m;

 

error_page   404 =  http://www.jb51.net/404.html;

 

#error_page   404  = /40x.html;

#location = /40x.html{

#root   html;

#}

 

#error_page   500 502 503 504  /50x.html;

#location = /50x.html {

#root   html;

#}

 

open_file_cache max=102400 inactive=20s;

 

sendfile        on;

 

#autoindex on;

 

tcp_nopush  on;

tcp_nodelay on;

 

keepalive_timeout  60;

 

gzip  on;

gzip_min_length  1k;

gzip_buffers     4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

#gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

 

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

 

#如果要启用负载均衡

#upstream www.xxx.com {    

#zone myapp1 64k; 

#server 192.168.1.220:80 weight=1 max_fails=2 fail_timeout=30s slow_start=30s; 

#server 192.168.1.221:80 weight=1 max_fails=2 fail_timeout=30s;   

#} 

   

#upstream www.xxx.org {   

#zone myapp1 64k; 

#server 192.168.1.220:80 weight=1 max_fails=2 fail_timeout=30s slow_start=30s; 

#server 192.168.1.221:80 weight=1 max_fails=2 fail_timeout=30s;   

#}   

log_format  access '$remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';

 

#access_log logs/access.log access;

 

include vhost/*.conf;

}

2.2)renzhiyuan.conf配置动静分离:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

server {

        listen       80;

        server_name  

        #路径根据 Resin定义路径配置,这里根据默认

        root   /usr/local/resin/webapps/ROOT;  

        index  index.html index.php index.jsp index.html;

         

#location ~ \.php$ {

#            root           html;

#            fastcgi_pass   127.0.0.1:9000;

#            fastcgi_index  index.php;

#            include        fastcgi.conf;

#        }

         

location ~ .(jsp|jspx|do)?$ {

proxy_set_header Host $host;

proxy_pass http://127.0.0.1:8080;

proxy_redirect off;

 

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $host;

client_max_body_size 10m; 

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

}

 

location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {

expires      30d;

}

 

location ~ .*\.(js|css)?$ {

expires      12h;

}

}

登录乐搏学院官网http://www.learnbo.com/

或关注我们的官方微博微信,还有更多惊喜哦~

本文出自 “永不放弃!任志远” 博客,转载请与作者联系!

© 著作权归作者所有

共有 人打赏支持
乐搏学院
粉丝 9
博文 526
码字总数 707467
作品 0
丰台
程序员
私信 提问
问一个resin, ngnix负载均衡的问题

问一个resin, ngnix负载均衡的问题 我想单独用resin来做负载均衡, 10.10.10.100 web-tire app-tier 比如我的网站是: www.vmusic.com,后台管理是admin.vmusic.com,用户博客是*.blog.vmusic.c...

许文强
2011/08/26
1K
2
部署LAMP+NFS实现双Web服务器负载均衡

一、需求分析 1.前端需支持更大的访问量,单台Web服务器已无法满足需求了,则需扩容Web服务器; 2.虽然动态内容可交由后端的PHP服务器执行,但静态页面还需要Web服务器自己解析,那是否意味着...

甩锅侠
2017/10/16
0
0
Nginx LB+keepalived+varnish+NAMP架构部署wordpress实现动静分离

Nginxproxy+varnish Nginx负载均衡它可基于四层和七层之间进行调度,而且对后端各个节点具有健康状态检测的功能,当后端服务器故障时,会自动标记为不可用状态,当后端节点上线时再将请求调度...

老城小叙
2017/07/16
0
0
高可用高性能负载均衡软件HAproxy详解指南-第三章:HAproxy实例

第三章:HAproxy实例 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 上一篇:第二章:HAproxy配置文件详解以及HAproxy的ACL详解 目录 hapr...

好笔记运维
2016/11/16
0
0
Nginx加多个tomcat实现负载均衡,动静分离

一:Nginx+Tomcat的动静分离 所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片、html等静态的文件,tomcat(或weblogic)处理jsp、do等动态文件,从而达到动静页面访问时通过...

fighting-cluber
2014/03/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux iptables之mangle表使用案例

mangle表的用途 mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。 mangel表使用示例 示例1-策略路由1 内网的客户机通...

月下狼
今天
3
0
OSChina 周日乱弹 —— 兼职我想去学学布偶戏

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy : 《火炎 - 女王蜂》 《火炎 - 女王蜂》 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁 :还在睡觉突然接到一个小哥哥电话“x...

小小编辑
今天
77
5
租房软件隐私保护如同虚设

近日,苏州市民赵先生向江苏新闻广播新闻热线025-84658888反映,他在“安居客”手机应用软件上浏览二手房信息,并且使用该软件自动生成的虚拟号码向当地一家中介公司进行咨询。可电话刚挂不久...

linux-tao
今天
3
0
分布式项目(五)iot-pgsql

书接上回,在Mapping server中,我们已经把数据都整理好了,现在利用postgresql存储历史数据。 iot-pgsql 构建iot-pgsql模块,这里我们写数据库为了性能考虑不在使用mybatis,换成spring jd...

lelinked
今天
6
0
一文分析java基础面试题中易出错考点

前言 这篇文章主要针对的是笔试题中出现的通过查看代码执行结果选择正确答案题材。 正式进入题目内容: 1、(单选题)下面代码的输出结果是什么? public class Base { private Strin...

一看就喷亏的小猿
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部