记一笔:Windows下tomcat外网不能访问处理过程

来源:互联网 发布:京东淘宝网购物 编辑:程序博客网 时间:2024/05/16 19:20

问题与分析:

公司使用tomcat7做应用服务,运行在CentOS 6.5环境上,服务器开始放在公司内网,通过花生壳映射到外网,能正常访问。后来准备迁移到IDC机房,迁移之前派了一个同事扛了一台笔记本电脑去IDC机房测试网络,他的笔记本装的windows 7 操作系统,下班的时候那个同事回来说外网就是连不到他笔记本上运行的tomcat服务,捣鼓了一下午,关了防火墙,换了tomcat的版本,就是死都不通,又测试了IIS和jboss,发现IIS和jboss没任何问题,很畅通,真是奇了怪了。


第二天上班,同事把他笔记本的tomcat服务起来,内网访问正常,于是我就开始处理。


第一步,难道说他机器上的tomcat走的IPV6通道?那好,找到server.xml,修改

<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" />

<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443"  address="0.0.0.0"/>

重启服务,用花生壳映射出去,测试,问题没解决。


第二步,我们的应用服务器是tomcat,但都是通过web前置nginx服务做的反向代理,ok,就用nginx代理一下他机器上的tomcat服务

server {
        listen 80;

        server_name xxx.xxxx.com;

       location / {
                        proxy_pass http://xxx.xxx.xxx.xxx:8080;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
        }


启动nginx服务,测试,没用。


第三步,各种百度搜,看来遇到同样问题的还是很多人的,问的人多,解决的人少,有的人说是防火墙的问题,想想我们的防火墙早关没了,于是又怀疑我是否真关了防火墙,简单的说就是看着关了,其实没关掉,我的电脑->右键“管理”->...查看服务


是不是这货,于是乎,停止,重启tomcat服务,测试,问题依旧,靠。


第四步,到这里,开始怀疑同的笔记本有问题了,想起我的开发机上运行着tomcat服务,同样的win7操作系统,把我机器的服务映射到外网,测试,我乐个去,通了。仔细比较了同事的tomcat,我的tomcat是用来放CentOS上的免安装版本,启动脚本startup.bat,同事用的是安装版本,运行tomcat7.exe会产生一个tomcat进程,到这里,问题想必极可能是出在这个tomcat进程上了,可试了彻底关防火墙、加防火墙规则,就是不通,也是日了整个动物园了,没着了,只好问题暂时定为同事的电脑有问题,其它的等待后面慢慢找。

解决方案:

更换为linux版本tomcat,运行startup.bat脚本启动服务,这样就不会有tomcat进程,其实我们的服务本来就是运行在CentOS上,然后,同事捣鼓一下午,白死了一堆脑细胞。


0 0
原创粉丝点击