java web 服务器架构由tomcat转换成apache+tomcat的问题

massjcy 发布于 2015/01/21 08:31
阅读 670
收藏 0
java web项目,之前是tomcat服务器部署,但是项目里的静态资源有点多,现在想apache+tomcat部署,想问一下,我的项目代码是放到apache还是tomcat?静态资源呢?
加载中
0
Mr72
Mr72
静态Apache,动态Tomcat
m
massjcy
我可能还不是太明白Apache的运行原理,但是我之前用的是tomcat,比如说我在浏览器中输入http://localhost:8080/myProject,会直接跳转至我工程的主页面,并加载其中的jsp(或者html),css,js,images,但是如果使用Apache+tomcat的话,我怎么配置才能实现这样的效果?我不知道我理解的Apache+tomcat的运行原理对不对。
m
massjcy
静态放到Apache的话,需要有什么配置吧,不然服务器怎么知道到哪里找对应的资源?我想问的就是这个配置是怎么配置的呢?我是新手,谢谢!
0
Jack_Q
Jack_Q

引用来自“OMG72”的评论

静态Apache,动态Tomcat

+1

推荐nginx

m
massjcy
恩,我的并发不大,所以试试Apache。但是听别人说Apache比nginx配置起来复杂
orangleliu
orangleliu
+1并发不大,apache挺好
0
原来如此
原来如此
放任何位置都一样,甚至不放在apache或tomcat目录下也行,我的做法是放在tomcat下,配置一下,nginx拦截到静态,返回相关静态资源就行了
原来如此
原来如此
回复 @massjcy : 现在大家都是使用nginx了
m
massjcy
如果使用Apache,怎么配置静态资源的访问路径呢?主要是不会配置,在网上找了好多教程,按着操作,都不对。
0
Jack_Q
Jack_Q

引用来自“原来如此”的评论

放任何位置都一样,甚至不放在apache或tomcat目录下也行,我的做法是放在tomcat下,配置一下,nginx拦截到静态,返回相关静态资源就行了
学习了
0
Feng_Yu
Feng_Yu

我的配置参考:

简单做了一下动静分离,使用apache自带的proxy_ajp模块和tomcat实现反向代理,这个似乎是apache自家推荐的方案。也可以用mod_jk模块,不过这个是第三方模块,需要额外安装,部署并不方便,规模量不大的话用proxy_ajp足够了。这样可以删掉tomcat中Connector配置段中的HTTP端口了,只开放ajp13端口,监听127.0.0.1

<VirtualHost *:80>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	RedirectMatch ^/$ /app/
	FileEtag None

	<LocationMatch "^/app/(static/)?(css|fonts|images|img|js)">
		ProxyPassMatch !
		ExpiresActive on
		ExpiresDefault "access plus 7 days"
	</LocationMatch>

	<Location "/app/assets">
		SetEnv no-gzip
	</Location>

	Alias /app/static /var/lib/tomcat7/webapps/app
	Alias /app /var/lib/tomcat7/webapps/app
	<Directory "/var/lib/tomcat7/webapps">
		AllowOverride None
		Require all granted
	</Directory>
	
	ProxyPass /app ajp://127.0.0.1:8009/app
</VirtualHost>



Feng_Yu
Feng_Yu
回复 @massjcy : 我们的应用只有一个tomcat而已,所以这个配置段只是配了个虚拟主机,实现了动静分离,静态资源由apache直接响应,动态请求通过proxy_ajp协议丢给tomcat
Feng_Yu
Feng_Yu
回复 @massjcy : 只是这段配置写在了虚拟主机而已
m
massjcy
这个配置是在Apache的配置文件中添加的是吧?为什么要添加这个虚拟机配置呢?里面的参数具体要配置什么呢?
0
原来如此
原来如此

引用来自“原来如此”的评论

放任何位置都一样,甚至不放在apache或tomcat目录下也行,我的做法是放在tomcat下,配置一下,nginx拦截到静态,返回相关静态资源就行了

location ~.*\.(htm|html|gif|jpg|jpeg|png|ico|rar|css|js|zip|txt|flv|swf|doc|ppt|xls|pdf)$ {

             root /home/tomcat/web/apache-tomcat-7.0.52/webapps/ROOT;  静态资源目录
             access_log off;  关闭日志
             expires 30d;  客户端缓存30天
        }
返回顶部
顶部