搜索
首页运维linux运维tomcat和Nginx的服务器部署
tomcat和Nginx的服务器部署Jul 15, 2017 am 11:38 AM
linuxtomcat

一、准备工作

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

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

  

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

  

二、安装部署工作

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

  1.目录划分   

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

   

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

   

2.修改配置  

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

    

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

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

  

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

  

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

  

  其他的/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目录如下:

  

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

  

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

  

  然后再来看看怎么配置吧,监听auction.center.jd.net:80域名访问,然后转发到本机的127.0.0.1的1605端口访问,从配置中我们也可以看到,对于一些异常状态,如http_500 http_502 http_504等会记录下来,做不同的处理,一般情况下可以跳转到网站首页等等,然后就是记录日志,配置好了这个配置文件,我们一定不能忘了新建日志目录,不然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有所好感,慢慢的我会从认识到了解到熟知(虽然不能相知相爱)。


 

以上是tomcat和Nginx的服务器部署的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Springboot怎么使用内置tomcat禁止不安全HTTPSpringboot怎么使用内置tomcat禁止不安全HTTPMay 12, 2023 am 11:49 AM

Springboot内置tomcat禁止不安全HTTP方法1、在tomcat的web.xml中可以配置如下内容让tomcat禁止不安全的HTTP方法/*PUTDELETEHEADOPTIONSTRACEBASIC2、Springboot使用内置tomcat没有web.xml配置文件,可以通过以下配置进行,简单来说就是要注入到Spring容器中@ConfigurationpublicclassTomcatConfig{@BeanpublicEmbeddedServletContainerFacto

springboot内置tomcat支持最大的并发量问题怎么解决springboot内置tomcat支持最大的并发量问题怎么解决May 22, 2023 pm 08:21 PM

springboot内置的tomcat支持最大的并发量SpringBoot内置Tomcat,在默认设置中,Tomcat的最大线程数是200,最大连接数是10000。支持的并发量是指连接数,也就是说支持最大并发量是一万(默认)Tomcat有两种处理连接的模式1,是BIO,一个线程只处理一个Socket连接,2,是NIO,一个线程处理多个Socket连接。由于HTTP请求不会太耗时,而且多个连接一般不会同时来消息,所以一个线程处理多个连接没有太大问题。一个线程处理多个连接数会很慢有可能会超时默认内嵌

Nginx+Tomcat高性能负载均衡集群怎么搭建Nginx+Tomcat高性能负载均衡集群怎么搭建May 14, 2023 am 11:34 AM

nginx是一个高性能的http服务器/反向代理服务器及电子邮件(imap/pop3)代理服务器。其占有内存少,并发能力强,在同类型的网页服务器中表现较好。nginx可以在大多数unixlinuxos上编译运行,并有windows移植版。一般情况下,对于新建站点,建议使用最新稳定版作为生产版本。单个tomcat最大支持在线访问是500左右,要通知支持更多的访问量一个tomcat就没法做到了。在这里我们采用集群部署方式,使用多个tomcat,反向代理使用nginx。架构如下:准备工作apache-

nginx,tomcat,apache的区别是什么nginx,tomcat,apache的区别是什么May 15, 2023 pm 01:40 PM

1.Nginx和tomcat的区别nginx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来做一个应用容器,让javawebapp泡在里面的东西。严格意义上来讲,Apache和nginx应该叫做HTTPServer,而tomcat是一个ApplicationServer是一个Servlet/JSO应用的容器。客户端通过HTTPServer访问服务器上存储的资源(HTML文件,图片文件等),HTTPServer是中只是把服务器

Debian下搭建Nginx和Tomcat服务器实现负载均衡的方法Debian下搭建Nginx和Tomcat服务器实现负载均衡的方法May 19, 2023 pm 10:31 PM

负载均衡的基本概念负载平衡(loadbalancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、cpu、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软体和硬件来完成。负载平衡最重要的一个应用是利用多台服务器提供单一服务,这种方案有时也称之为服务器农场。通常,负载平衡主要应用于web网站,大型的internetrela

nginx+tomcat怎么实现Windows系统下的负载均衡nginx+tomcat怎么实现Windows系统下的负载均衡May 16, 2023 pm 01:28 PM

首先,安装两个tomcat,可以是同一个复制成两个,也可以下载两个不同版本的tomcat,我就是下载了两个不同版本的。(这是8.0版本的,随便找两个不是特别老的版本的就行)。然后启动两个tomcat,在启动前,先更改其中一个的端口号,使得两个tomcat启动时不会端口冲突,一个是本身的8080端口,一个是改成了9080端口。配好以后,打开cmd命令窗口,我的tomcat一个放在d:\software\apache-tomcat-8.5.24目录下,按照如下命令即可启动,启动成功会弹出另一个窗口,

Java环境变量和Tomcat服务器怎么配置Java环境变量和Tomcat服务器怎么配置May 11, 2023 pm 08:49 PM

第一步:配置与系统一致的jdk环境变量(32位/64位)(1)官网下载jdk安装包:官网下载地址:根据自己的操作系统选择对应的安装包(一定要选择接受许可协议)(2)安装jdk:安装jdk选择安装目录安装过程中会出现两次安装提示。第一次是安装jdk,第二次是安装jre。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)安装完成如下图所示(3)配置环境变量安装完jdk后配置环境变量计算机→属性→高级系统设置→高级→环境

如何在SpringBoot中内嵌Tomcat并发容量如何在SpringBoot中内嵌Tomcat并发容量May 11, 2023 pm 11:13 PM

发现并发容器问题对单接口进行6000线程压测,每个线程请求5次,线程在5秒内创建完毕,当进行一半的时候,已经出现了请求响应时间过大及其错误率达到了43%。这个并发容量对于配置比较好点的服务器相对来说有点弱。深入SpringBoot底层了解原因在SpringBoot官方文档中提到了关于元数据的配置可以看到,关于我们最常用的设置项目的端口的默认配置就在其中。默认内嵌Tomcat配置1、server.tomcat.accept-count:等待队列长度,当可分配的线程数全部用完之后,后续的请求将进入等

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中