部署项目到远程服务器

JavaWeb 甚至 Html 都还没开始学,我就鼓捣着部署到服务器的活,是否是有点装逼嫌疑?html

其实,学习 JavaWeb 纯属于我的兴趣,兴趣的起源就是搭建本身的网站,因此在一开始写 HelloWorld 的时候,就把它打包部署到远程服务器上,让任何人均可经过浏览器进行访问(虽然并无人)个人 HelloWorld 页面,这能够大大激发个人积极性。java


 

  前期准备:
  • 首先咱们得有一个云主机才行,露珠的是在腾讯云租的最低配置的 centos7 服务器,在校大学生有优惠,一个月一块钱。
  • 在 centos7 服务器上安装 tomcat,具体步骤和在本地主机安装没什么区别,详见 Centos7 搭建 JavaWeb 开发环境
  • centos7 服务器跑起来以后,能够打开本地主机的浏览器,输入“服务器IP:8080”,如 123.207.59.123:8080,若是见到 Tomcat 欢迎页面,说明一切正常。
  项目部署:
  1. 在本地主机上,打开 Eclipse ,选中要部署的 Web 项目,右键导出 war 文件,这里导出的是 HelloWorld.war;
  2. 将 HelloWorld.war 直接复制到服务器 tomcat 目录下的 webapps 目录,因为露珠的 tomcat 设置了自动部署选项,所以已经,能够经过 123.207.59.123:8080/HelloWolrld 来访问本页面了。复制文件到服务器的操做为:
    scp HelloWorld.war root@123.207.59.123:/usr/share/tomcat/webapps

  Emmm... 原来部署个 HelloWorld 这么简单的。可是有点不顺眼的是,要访问个人大 HelloWorld 项目时,不只要在 ip 地址后面输入端口号,并且还要输入 HelloWorld 的路径。针对这两个问题:web

  1. 在服务上,tomcat 的 webapps 目录下(个人是 /usr/share/tomcat/webapps ),将 ROOT 文件备份而后删除,其实就是更名啦:
    sudo mv ROOT root.bak
  2. 将咱们的 HelloWorld.war 更名为 ROOT.war,立刻会看到一个 ROOT 从新被生成出来,此时只要 123.207.59.123:8080  就能够访问到此 HelloWorld 页面;
  3. 接下来,去掉端口号。由于浏览器在访问一个 URL 时,若 URL 没有指定端口号,则浏览器默认访问 80 号端口。所以只要将咱们的 Server 跑在 80 号端口,问题应该就解决了。改服务器端口号的方法,修改  /usr/share/tomcat/conf/server.xml,将里面两个 8080 修改成 80;
    sudo vim  /usr/share/tomcat/conf/server.xml
  4. 修改后 restart tomcat,按理说能够了,可是却出现没法启动 tomcat 的问题,查看 tomcat 目录下的 logs,发现报的是这个异常:
    SEVERE: Error starting endpoint java.net.BindException: Permission denied <null>:80   

     

     查阅资料,说是非 root 用户不能动用 1024 如下的端口号,可是很奇怪,我登录就是用 root 身份呀;
  5. 另外一个通常的解决方案是使用 iptables 命令将全部到 80 的请求重定向到 8080,这就不用修改 server.xml (啊咧?改回来吧孩子):
     iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

     

好了,如今就只要在浏览器中输入 123.207.59.123,就能够看到我那几个闪着亮光的眉清目秀的 HelloWorld  了。vim

相关文章
相关标签/搜索