铁雪资源网 Design By www.gsvan.com

  项目需要,申请了三台测试机器,好在测试机里面光秃秃的什么都没有,我就可以好好的学习一把玩一把了!接下来以图文的形式讲一下我所碰到的坑以及小小的收获吧!

一、准备工作

  首先你得有一台可以玩的linux服务器,知道用户名和密码,然后你需要在windows电脑上安装两个可以连上linux服务器的工具,Xshell 5和Xftp 5,安装教程不多说,补图说明如何连上服务器:

  xshell连接界面如下,输入好主机ip后点击确定,xshell会弹出窗口输入用户名和密码即可连接成功!

linux服务器部署tomcat和Nginx的教程

  xftp连接界面如下,填空就可以了,很简单不多说,提一下这里为什么选择SFTP而不选择FTP呢,看FTP与SFTP的区别 知多少就可以明白了!

linux服务器部署tomcat和Nginx的教程

二、安装部署工作

  若要部署项目到到linux服务器上,安装jdk和tomcat是必不可少的,在这里要强调的是,如果你的一个服务器上要部署多个应用时,那就需要针对每一个应用都有自己的tomcat,因为不同的应用下面,tomcat的配置肯定是不一样的,对于这种情况,可以安装一个tomcat安装目录和多个应用下的tomcat的工作目录,对于相同的部分可以共享安装目录的tomcat,下面再分别详细介绍该如何操作,如何安装tomcat和jdk到你的服务器上

1.目录划分   

  这是很重要的一步,可以按照下图这种方式新建目录,该目录下面放置与项目启动和部署访问相关的一些文件,大家可以看到,我在这个目录下面放置了多个版本的jdk和多个版本的tomcat,项目部署过程中具体使用哪个tomcat和jdk都是可以通过配置实现的。

linux服务器部署tomcat和Nginx的教程

  对于实际的应用,我们专门放在一个实例目录下,建立好每个应用的名字,然后该目录下面放置相应的war包,以及解压后的文件,等着tomcat读取该目录部署该应用,如下:

linux服务器部署tomcat和Nginx的教程 linux服务器部署tomcat和Nginx的教程

2.修改配置  

  每个应用下面的tomcat我们也放置在一个目录下面方便管理,如下图,但是得注意每个tomcat的配置

linux服务器部署tomcat和Nginx的教程 linux服务器部署tomcat和Nginx的教程

  /bin目录下面,start.sh文件和stop.sh文件都要修改,首先要指定jdk路径,类似于配置环境变量,其次就是要,指定tomcat工作目录的tomcat路径,大家可以注意到,CATALINA_HOME和CATALINA_BASE分别对应tomcat的安装目录和工作目录,然后大家从最后一行可以看到项目启动使用的是安装目录下面的start.sh,但是项目启动使用的tomcat配置文件则是每个应用tomcat自己所配置的配置文件。stop.sh也是同样的道理。

linux服务器部署tomcat和Nginx的教程

  对于使用xshell执行./start.sh和./stop.sh都是需要权限的,若出现没有权限,咱们可以使用xftp对start.sh邮件修改权限,按如图所示,打上勾勾即可。

linux服务器部署tomcat和Nginx的教程

  /conf目录下面,需要注意修改的配置有,首先是server.xml文件,修改对应的端口号,每个应用的tomcat都需要修改不同的端口号,不然会导致启动多个tomcat时端口占用而没法启动,最好记住这个这个应用配置的tomcat的端口号,后面使用nginx做端口映射时会用到; 

linux服务器部署tomcat和Nginx的教程

  另外一个要修改的地方就是,Catalina目录下的localhost目录下的ROOT.xml文件,该文件用于指定tomcat启动时,加载哪个目录下的项目实例

linux服务器部署tomcat和Nginx的教程

  其他的/logs目录、/temp目录、/webapps目录、/work目录不需要修改;从上面也可以看出来,目录划分非常清晰,分别划分为,服务安装目录(jdk、tomcat、nginx等),应用实例目录,以及应用部署目录,大家在使用玩linux服务器部署多个项目时,也可以按照这种方式划分。

3.nginx实现80端口反向代理

  按道理说,这个时候我们就可以把我们自己应用的war包传到相应的目录下面解压,然后去对应的应用tomcat工作目录下面执行./start.sh就可以启动该项目了!大家不妨可以先试试看。

  项目部署好后,我们配置好hosts开始访问了,这个时候我们会发现,必须得加上上面配置好的tomcat端口号才可以访问,我们能不能不加上端口号(使用默认的80端口)访问呢?上面也提到了,对于不同的tomcat我们配置了不同的端口号,原因就是一个端口号只能给一个tomcat去使用,这就意味着,项目访问必须得添加端口号访问,但是,要做到每一个应用都可以使用80端口访问我们也是可以做到的,这时候就要使用到nginx了,安装好nginx后我们添加部分配置就可以做到反向代理,对不同应用使用的80端口访问转发到相应的端口号,在tomcat看来,外部请求还是使用了tomcat配置的端口号,这样也就实现了我们想要的效果,具体配置如下(当然我们也得做好相应的目录划分工作):

  nginx目录如下:

linux服务器部署tomcat和Nginx的教程

  我们只需要关心/conf目录下面的nginx.conf配置文件,具体配置信息我也打开给大家看了,注意到最后一行了么,"include domains/*",表示该配置还没有完,包含/domains目录下的所有配置文件,

linux服务器部署tomcat和Nginx的教程

  这个时候我们把相应的每个应用的nginx配置,用不同命名的文件配置好就可以了

linux服务器部署tomcat和Nginx的教程

  然后再来看看怎么配置吧,监听auction.center.jd.net:80域名访问,然后转发到本机的127.0.0.1的1605端口访问,从配置中我们也可以看到,对于一些异常状态,如http_500 http_502 http_504等会记录下来,做不同的处理,一般情况下可以跳转到网站首页等等,然后就是记录日志,配置好了这个配置文件,我们一定不能忘了新建日志目录,不然nginx找不到目录,启动会报错。

linux服务器部署tomcat和Nginx的教程

  做完了这些工作之后,还没完,我们需要重启nginx,具体怎么重启我就不多说了,百度上很多相关资料,如果重启失败,咱们干脆来狠招,杀掉nginx进程,然后再使用nginx service start命令启动nginx服务。

  在我们做完这些工作之后,是不是就可以使用我们熟悉的方式(不添加端口号)访问了呢,嗯对是的没错就是这样的,很多人在顾虑是不是还要重启tomcat重新部署应用,那只能说明你对网络层的nginx路由转换那一层没有理解,我们访问的域名首先通过我们配置的hosts做DNS解析,转换到对应的Ip,找到ip对应的服务器,经过服务器的防火墙,然后当我们对服务器配置Nginx后,Nginx首先会拦截请求,对请求做处理和分发,最终才会打到相应的tomcat上(个人理解,可能理解的也不到位,勿喷),这时候我们就可以满怀信心的访问域名发送请求了!!

4.踩坑

  额。。不好!!空欢喜一场,跳转到首页,还是没法访问指定应用,当我试着加上端口号后,“奇迹”般的能访问,这就说明咱们配置的Nginx没有生效,问题出在哪呢?

  下面说下我的解题思路吧,首先我们得确认所有的请求都走到了Nginx,这时候就体现了日志的好处了,当我们使用80端口访问我们的应用时,盯着日志去看,一遍两遍三遍。。没有日志,这个时候我们粗略的可以断定根本就没有经过Nginx服务,并不能确定nginx服务对于服务器没有生效,应为也许是咱们的日志配置的有问题呢,这个时候我做出一个大胆的操作,那就是关掉,nginx服务访问,还是跳转到网站首页,怎么回事?难道跳转到首页不是通过nginx配置的?的确,公司在网络层就已经做了处理,这个时候我很迷茫,完全就是各种尝试,不妨修改tomcat配置,把其中一个应用配置成80端口,这样总可以访问了吧,很快,修改完成并部署好,就等着地址栏输入域名访问了,因为Nginx服务已经关闭了,这时候的请求肯定是直接打到tomcat上的,访问一次两次三次,“奇迹”般的居然不能访问,纳尼???这时候灵光一闪,绝对是服务器防火墙禁用了80端口,赶紧试着在本地telnet 192.168.108.37 80 果然不能访问,证明了我的猜测是对的,这时候就好办了,只要在防火墙中开通80端口访问权限即可,下面补充下如何在CentOS下配置iptables防火墙放开80端口。

  1.打开iptables的配置文件,代码如下:vi /etc/sysconfig/iptables

  2.通过/etc/init.d/iptables status,命令查询是否有打开80端口,如果没有可通过两种方式处理

  3.第一种方式:修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口,代码如下: 

复制代码 代码如下:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

  4.关闭/开启/重启防火墙 代码如下:/etc/init.d/iptables stop (#start 开启 、#restart 重启)

   5.第二种方式:通过命令去添加端口,代码如下:

[root@centos httpd]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@centos httpd]# /etc/rc.d/init.d/iptables save
[root@centos httpd]# /etc/init.d/iptables restart

  6.查看效果:[root@centos httpd]# /etc/init.d/iptables status

  7.补充一句,推荐使用第二种方式,操作简单,成功率高,就拿我来说吧,当我使用第一种方式修改防火墙配置的时候,重启失败,使用第二种方式,完美成功

三、总结

  最后结果也是预料之中,即使tomcat配置了1605端口,我们照样能使用80端口访问,这就是nginx的强大之处,不过几兆的安装包,居然能发挥如此多的作用,这是我刚学nginx入门,了解的很浅陋,但是通过这一次实践让我对nginx有所好感,慢慢的我会从认识到了解到熟知(虽然不能相知相爱)。

  补充:上面讲的这么多都是基于会一些基本linux命令的,对于不知道如何创建文件,修改文件,上传war包,启动tomcat,查看进程,查看日志等等基本命令的,最好还是先学习下基本的linux命令,慢慢的你会发现,许多能用xftp可视化界面做的事情,我们更喜欢去用命令操作。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

标签:
linux,tomcat,Nginx

铁雪资源网 Design By www.gsvan.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
铁雪资源网 Design By www.gsvan.com

评论“linux服务器部署tomcat和Nginx的教程”

暂无linux服务器部署tomcat和Nginx的教程的评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?