您的位置:首页 > 运维架构 > Tomcat

Apache + Tomcat +mod_jk 限制域名、IP访问

2015-06-19 00:00 716 查看
问题: 1: 限制其他域名解析到指定IP 2: 禁止IP直接访问

方法: 通过Apache配置虚拟主机 vhost ,说白点 就是以 虚拟主机和反向代理协议来 实现

1: 参考下Apahce官网vhost配置

http://httpd.apache.org/docs/2.0/vhosts/examples.html

2: 服务器Apache conf/httpd.conf

[code=plain]    LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
加载httpd-vhosts.conf配置文件,也是去掉#
Include conf/extra/httpd-vhosts.conf

3:conf/extra/httpd-vhosts.conf
[code=plain]NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.ceshi.com
ServerAlias www.ceshi.com
DirectoryIndex index.html index.htm index.jsp login.jsp
#转发url上的请求  '/'替换后者请求
ProxyPass / ajp://192.168.1.254:8099/ retry=3
#设置反向代理重新重定向Header头参数值
ProxyPassReverse / ajp://192.168.1.254:8009/ retry=3
ErrorLog "logs/www.ceshi.com-error.log"
</VirtualHost>

<VirtualHost *:80>
ServerName www.ceshi123.com
DocumentRoot "D:/apache/htdocs"
ErrorLog "logs/www.ceshi123.com-error.log"
<Directory "D:/apache/htdocs">
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName 192.168.1.254
DocumentRoot "D:/apache/htdocs"
ErrorLog "logs/www.ceshi123.com-error.log"
<Directory "D:/apache/htdocs">
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all
</Directory>
</VirtualHost>

其中: www.cehi.comwww.ceshi123.com 分别做不同处理,www.cehi.com 通过反向代理来处理外部的请求, www.ceshi123.com 则用来apache默认的外网公开下载地址 我服务器内网IP是192.168.1.254 故我直接限制拒绝访问

4: 另外,配置本服务器host文件 ,一般 C:\Windows\System32\drivers\etc

127.0.0.1 www.ceshi.com
127.0.0.1 www.ceshi123.com

5: 之前已经通过apache+tomcat+mod_jk 实现负载均衡机制,故tomcat配置文件需修改

[code=plain]<Host name="www.ceshi.com"  appBase="webapps"   unpackWARs="true" autoDeploy="true"      xmlValidation="false" xmlNamespaceAware="false">

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b  %{Referer}i %{User-Agent}i" />
</Host>

如果想屏蔽掉项目名,

则加上

[code=plain] <Context path="" docBase="D:/tomcat7/webapps/project" crossContext="true"/>

<Context path="/project" docBase="D:/tomcat7/webapps/project" crossContext="true"/>


重启apache+tomcat 测试即可。

PS: 以上适用于 apache+tomcat+mod_jk实现的负载均衡机制下,其他情况没测试,如有问题,请留言!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  apache tomcat mod_jk IP