使用Tomcat搭建一个可以通过公网访问的服务器(转)
我们平常学习时经常会写一下javaweb程序,我们为了更能逼近现实,就想着自己的javaweb程序发布后,外网的同学能够访问我们的网站,难道我们去买空间,去买域名嘛,其实也没必要,我们只是学习,测试之用,在自己的电脑上搭建一个服务器完全可以满足要求。上次写的一篇博客,PC服务端与Android客户端实现网络通信,就是利用这个原理。
我们分为三步走来实现:(我这里用的示例javaweb程序是我自己简单写的一个小程序shop1)
1.
我们用Tomcat服务器,如果我们的javaweb程序已经部署到了Tomcat服务器,一般我们在本地访问的地址为:localhost:8080/shop1,localhost指本机,即127.0.0.1,8080端口号,shop1你部署的项目名称,但太过繁琐,我们只想通过IP地址来访问我们的项目,即127.0.0.1或者localhost,我们只需修改一下Tomcat的配置即可,打开Tomcat所在的目录,打开conf文件夹,打
开server.xml文件,所要修改的部分如下:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Context path="" docBase="shop1" reloadable="true" />
即将port从原先的8080修改成80,因为http协议的默认端口是80,这样你就可以不用再输端口号了,把docBase="shop1"的值修改成你所部属的项目的名称,默认指向你的项目,这样你就可以不输项目的名称了。
2.
上一步我们只实现了自己访问,但如何让外网的同学访问,这里可能涉及了简单的网络知识,我网络学的也不是很好。就说的比较通俗一点。有两种情况:
(1).你上网没有用路由,运营商单独分给你一个IP地址,那你直接可以用你的IP让外网的同学来访问你的网站,我们这里用的是8080端口,所以形式为:XX.XX.XX.XX:8080。为了让多的同学了解,我在啰嗦一下,怎么知道自己的IP地址,你不必用在cmd命令行输入ipconfig这种略显专业的方法去获取,其实只要在百度搜索“IP查询”,第一个就是。
(2).用了路由器,一个路由器带了好几台电脑,比如说跟室友,这就需要你去路由管理页面去设置一下,端口映射,让别人访问你们的IP地址时,映射到你的电脑,在浏览器中输入192.168.1.1(以你的路由为准),进入路由管理页面,操作如下图:
![](http://upload-images.jianshu.io/upload_images/6574542-ce3db1e196fa519a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
![](http://upload-images.jianshu.io/upload_images/6574542-68b769db9eff4520.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/515/format/webp)
端口我们没改,所以填8080,IP地址为你的电脑在局域网中的地址,怎么样知道自己的局域网中的地址,很简单自己百度一下,只要局域网里的电脑不是太多,一般为192.168.1.XXX,我这里为192.168.1.101,然后点击保存,OK,然后外网就可以用你们IP去访问你的网站了!
我的效果图如下:
![](http://upload-images.jianshu.io/upload_images/6574542-ef3af4f20324a9de.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
这时可以把这个网址发给你的同学,试一下,他能不能访问你的网站,答案是肯定的!
3,
但是又有新问题了,你第二天打开路由,或者再次上网时,运营商会重新分配给你一个新的IP地址,难道你让你同学访问时,再次把这个IP地址发给他吗?显然这是不合理了。
此时,我们就想有一个动态域名多好。这里给大家介绍一款软件“花生壳”,下载安装,然后注册后,你就会获得一个免费的二级域名,每次开机自启后,就会将花生壳服务端中的IP数据更新成你新的IP地址,然后你每次用你固定的域名来访问时,就会解析到你新的IP地址。
如下图:
![](http://upload-images.jianshu.io/upload_images/6574542-c9b646788ef0d7ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/434/format/webp)
OK,到这里,没有路由的同学,就可以直接用你的域名访问了!
有路由的同学,还得多操作一步:
再次进入路由管理页面,操作如下图:
![](http://upload-images.jianshu.io/upload_images/6574542-fa9a4571f2fca93e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
到这里,终于大功告成,看一下最终效果图:
![](http://upload-images.jianshu.io/upload_images/6574542-6a0e5e76bb918f4a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp)
可以看到,我用我的域名成功的访问到了我的网站。
PS:有时显示“验证成功”时也是个假象,一点击“保存”时,又显示为“验证失败”,再点击“登录”,多点击几次“保存”,直到它一直显示为“验证成功”即可,反正就是多试几次。
注:如果没有外网服务器的话,从外网访问需要借助一些端口映射软件的,网上找了一个开源的holer简单配置一个key就实现从外网访问了
https://github.com/Wisdom-Projects/holer