当前位置: 首页 > news >正文

家乡网站怎么做温州建网站业务人员

家乡网站怎么做,温州建网站业务人员,seo统计,网页制作模板设计1. Tomcat概述 Tomcat是Java语言开发的#xff0c;Tomcat服务器是一个免费的开放源代码的Web应用服务器#xff0c;是Apache软件基金会的Jakarta项目中的一个核心项目#xff0c;由Apache、Sun和其他一些公司及个人 共同开发而成。Tomcat属于轻量级应用服务器#xff0c;在… 1. Tomcat概述 Tomcat是Java语言开发的Tomcat服务器是一个免费的开放源代码的Web应用服务器是Apache软件基金会的Jakarta项目中的一个核心项目由Apache、Sun和其他一些公司及个人 共同开发而成。Tomcat属于轻量级应用服务器在中小型系统和并发访问用户不是很多的场合下被普遍使用是开发和调试JSP程序的首选。一般来说Tomcat虽然和Apache或者Nginx这些Web服务器一样具有处理HTML页面的功能然而由于其处理静态HTML的能力远不及Apache或者Nginx所以Tomcat通常作为一个Serlet和JSP容器单独运行在后端。 2. Tomcat的组件 Tomcat由一系列的组件构成其中核心的组件有三个 Web容器完成Web服务器的功能。Servlet容器名字为catalina用于处理Servlet代码。JSP容器用于将JSP动态网页翻译成Servlet代码。       因此 Tomcat 是 Web 应用服务器也是一个 Servlet/JSP 容器。Tomcat 作为 Servlet 容器负责处理客户的.jsp动态页面的请求把请求传送给 Servlet并将 Servlet 的响应传送回给客户 Servlet 是Java Servlet 的简称可以理解为是一个服务连接器是用 Java 编写的服务器端程序具有独立于平台和协议的特性 简单的理解servlet 就是一个中间件包含了接口和方法将客户端和数据库连接从而实现动态网页的创建。 JSP 全称 Java Server Pages是一种动态网页开发技术。它使用 JSP 标签在HTML网页中插入 Java 代码。标签通常以 % 开头以 % 结束。 JSP 是一种 Java servlet主要用于实现 Java web 应用程序的用户界面部分。 JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源然后动态地创建网页 Tomcat 功能组件结构 Tomcat 的核心功能有两个分别是负责接收和反馈外部请求的连接器 Connector和负责处理请求的容器 Container。 其中连接器和容器相辅相成一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。 Connector负责对外接收和响应请求。它是Tomcat与外界的交通枢纽监听端口8080接收外界请求并将请求处理后传递给容器做业务处理最后将容器处理后的结果响应给外界。Container负责对内处  其内部由 Engine、Host、Context和Wrapper 四个容器组成用于管理和调用 Servlet 相关逻辑。Service对外提供的 Web 服务。主要包含 Connector 和 Container 两个核心组件以及其他功能组件。Tomcat 可以管理多个 Service且各 Service 之间相互独立。 Connector 最重要的功能就是接收连接请求然后分配线程让 Container来处理这个请求所以这必然是多线程的多线程的处理是 Connector 设计的核心。Connector监听指定端口上请求当请求到来时创建一个request和response对象交换数据然后新建一个线程来处理请求并把request和response传递给Engine组件最后从Engine获取一个响应并返回给客户端。 Container 结构分析 每个 Service 会包含一个 Container 容器。在 Container 内部包含了 4 个子容器 4个子容器的作用分别是 Engine引擎用来管理多个虚拟主机一个 Service 最多只能有一个 EngineHost代表一个虚拟主机也可以叫站点通过配置 Host 就可以添加站点Context代表一个 Web 应用包含多个 Servlet 封装器Wrapper封装器容器的最底层。每一 Wrapper 封装着一个 Servlet负责对象实例的创建、执行和销毁功能 Engine、Host、Context 和 Wrapper这四个容器之间属于父子关系。 容器 由一个引擎可以管理多个虚拟主机。每个虚拟主机可以管理多个 Web 应用。每个 Web 应用会有多个 Servlet 封装器。 Tomcat请求过程 1、用户在浏览器中输入网址请求被发送到本机端口 8080被在那里监听的 Connector 获得 2、Connector 把该请求交给它所在的 Service 的 EngineContainer来处理并等待 Engine 的回应 3、请求在 Engine、Host、Context 和 Wrapper 这四个容器之间层层调用最后在 Servlet 中执行对应的业务逻辑、数据存储等。 4、执行完之后的请求响应在 Context、Host、Engine 容器之间层层返回最后返回给 Connector并通过 Connector 返回给客户端 Tomcat安装部署  1. 关闭防火墙将安装Tomcat所需软件包传到/opt目录下 [rootzy2 ~]# cd /opt [rootzy2 opt]# ls apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm rh [rootzy2 opt]# systemctl stop firewalld [rootzy2 opt]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [rootzy2 opt]# setenforce 0 setenforce: SELinux is disabled2. 安装JDK [rootzy2 ~]# java -version #查看版本当前系统已自带JDK openjdk version 1.8.0_131 OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode) [rootzy2 opt]# rpm -ivh jdk-8u201-linux-x64.rpm #rpm安装jdk [rootzy2 ~]# java -version #再次查看版本发现安装未生效仍是之前版本 openjdk version 1.8.0_131 OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)3. 设置JDK环境变量 #查看JDK文件目录 [rootzy2 opt]# rpm -qpl jdk-8u201-linux-x64.rpm ...... /usr/java/jdk1.8.0_201-amd64/src.zip [rootzy2 opt]# vim /etc/profile.d/java.sh #也可在/etc.profile末行添加以下内容 export JAVA_HOME/usr/java/jdk1.8.0_201-amd64 #定义JAVA_HOME变量为JDK文件目录 export CLASSPATH.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar #定义CLASSPATH变量为tools.jar和dt.jar的路径 export PATH$JAVA_HOME/bin:$PATH #将JAVA的bin目录加入到PATH变量[rootzy2 opt]# which java /usr/bin/java [rootzy2 opt]# source /etc/profile.d/java.sh [rootzy2 opt]# which java /usr/java/jdk1.8.0_201-amd64/bin/java [rootzy2 ~]# java -version #查看JAVA版本已更新 java version 1.8.0_201 Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)4. 测试java jdk测试首先使用文本工具编写java源代码比如 Hello.java 在命令行中输入命令javac Hello.java对源代码进行编译生成 class 字节码文件 编译完成后如果没有报错信息输入命令java Hello运行 class 字节码文件由 JVM 对字节码进行解释和运行打印 “Hello World”。 [rootzy2 ~]# vim Hello.java public class Hello {public static void main(String[] args){System.out.println(Hello World!);} }#类名、接口名命令英文大小写字母、数字字符、$和_不能使用关键字和数字开头 一个单词命名时第一个单词的首字母要大写多单词组成时所有单词的首字母大写XxxYyyZzz大驼峰命名法 [rootzy2 ~]# javac Hello.java [rootzy2 ~]# ls anaconda-ks.cfg Hello.class Hello.java initial-setup-ks.cfg original-ks.cfg [rootzy2 ~]# java Hello Hello World!5. 安装启动Tomcat [rootzy2 ~]# cd /opt [rootzy2 opt]# tar xf apache-tomcat-9.0.16.tar.gz [rootzy2 opt]# mv apache-tomcat-9.0.16 /usr/local/tomcat ##启动tomcat ## [rootzy2 opt]# cd /usr/local/tomcat/bin [rootzy2 bin]# ls bootstrap.jar configtest.sh shutdown.sh catalina.bat daemon.sh startup.bat catalina.sh digest.bat startup.sh #启动程序 catalina-tasks.xml digest.sh tomcat-juli.jar ciphers.bat makebase.bat tomcat-native.tar.gz ciphers.sh makebase.sh tool-wrapper.bat commons-daemon.jar setclasspath.bat tool-wrapper.sh commons-daemon-native.tar.gz setclasspath.sh version.bat configtest.bat shutdown.bat #关闭程序 version.sh[rootzy2 bin]# ./startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started[rootzy2 bin]# netstat -natp | grep :8080 tcp6 0 0 :::8080 :::* LISTEN 123581/java 浏览器访问Tomcat的默认主页 http://192.168.126.22:8080##启动tomcat ## #后台启动 /usr/local/tomcat/bin/startup.sh 或 /usr/local/tomcat/bin/catalina.sh start #前台启动 /usr/local/tomcat/bin/catalina.sh run #用systemctl命令控制tomcat [rootzy2 opt]# vim /usr/lib/systemd/system/tomcat.service [Unit] Descriptiontomcat server Wantsnetwork-online.target Afternetwork.target[Service] Typeforking ExecStart/usr/local/tomcat/bin/startup.sh ExecStop/usr/local/tomcat/bin/shutdown.sh Restarton-failure[Install] WantedBymulti-user.target[rootzy2 opt]# systemctl daemon-reload [rootzy2 opt]# systemctl restart tomcat.service [rootzy2 opt]# netstat -antp | grep :8080 tcp6 0 0 :::8080 :::* LISTEN 118634/java [rootzy2 opt]# systemctl stop tomcat.service [rootzy2 opt]# netstat -antp | grep :8080 tcp6 0 0 ::1:44616 ::1:8080 TIME_WAIT - [rootzy2 opt]# systemctl start tomcat.service Tomcat 虚拟主机配置 很多时候公司会有多个项目需要运行一般不会是在一台服务器上运行多个 Tomcat 服务这样会消耗太多的系统资源。此时 就需要使用到 Tomcat 虚拟主机 例如现在新增两个域名 www.accp​​​​​​.com 和 www.benet.com 希望通过这两个域名访问到不同的项目内容 [rootzy2 bin]# cd /usr/local/tomcat/webapps [rootzy2 webapps]# mkdir accp benet [rootzy2 webapps]# ls accp benet docs examples host-manager manager ROOT [rootzy2 webapps]# echo h1this is accp test web!/h1 accp/index.html [rootzy2 webapps]# echo h1this is benet test web!/h1 benet/index.html [rootzy2 webapps]# ls accp index.html [rootzy2 webapps]# ls benet index.html[rootzy2 webapps]# systemctl restart tomcat.service [rootzy2 webapps]# netstat -lntp | grep :8080 tcp6 0 0 :::8080 :::* LISTEN 118875/java客户端zy1浏览器访问验证 [rootzy1 ~]# echo 192.168.126.22 www.accp.com www.benet.com /etc/hostsTomcat 优化 Tomcat默认安装下的缺省配置并不适合生产环境它可能会频繁出现假死现象需要重启只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面分别为操作系统优化内核参数优化Tomcat配置文件参数优化Java虚拟机JVM调优 Tomcat 配置文件参数优化 redirectPort: 如果某连接器支持的协议是HTTP当接收客户端发来的HTTPS请求时则转发至此属性定义的 8443 端口。 maxThreads: Tomcat使用线程来处理接收的每个请求这个值表示Tomcat可创建的最大的线程数即支持的最大并发连接数默认值是 200。 minSpareThreads: 最小空闲线程数Tomcat 启动时的初始化的线程数表示即使没有人使用也开这么多空线程等待默认值是 10。 maxSpareThreads: 最大备用线程数一旦创建的线程超过这个值Tomcat就会关闭不再需要的socket线程。默认值是-1无限制。一般不需要指定。 processorCache: 进程缓冲器可以提升并发请求。默认值是200如果不做限制的话可以设置为-1一般采用maxThreads的值或者-1。 URIEncoding: 指定 Tomcat 容器的 URL 编码格式网站一般采用UTF-8作为默认编码。 connnectionTimeout: 网络连接超时单位毫秒设置为 0 表示永不超时这样设置有隐患的。通常默认 20000 毫秒就可以。 enableLookups: 是否反查域名以返回远程主机的主机名取值为true 或 false如果设置为 false则直接返回 IP 地址为了提高处理能力应设置为 false。 disableUploadTimeout: 上传时是否使用超时机制。应设置为 true。 connectionUploadTimeout: 上传超时时间毕竟文件上传可能需要消耗更多的时间这个根据你自己的业务需要自己调以使Servlet有较长的时间来完成它的执行需要与上一个参数一起配合使用才会生效。 acceptCount: 指定当所有可以使用的处理请求的线程数都被使用时可传入连接请求的最大队列长度超过这个数的请求将不予处理默认为 100 个。 maxKeepAliveRequests: 指定一个长连接的最大请求数。默认长连接是打开的设置为1时代表关闭长连接为-1时代表请求数无限制 compression是否对响应的数据进行GZIP压缩off表示禁止压缩on表示允许压缩文本将被压缩、force表示所有情况下都进行压缩默认值为 off压缩数据后可以有效的减少页面的大小一般可以减小 1/3 左右节省带宽。 compressionMinSize 表示压缩响应的最小值只有当响应报文大小大于这个值的时候才会对报文进行压缩如果开启了压缩功能默认值就是 2048。 compressableMimeType: 压缩类型指定对哪些类型的文件进行数据压缩。 noCompressionUserAgentsgozilla, traviata: 对于以下的浏览器不启用压缩 如果已经进行了动静分离处理静态页面和图片等数据就不需做 Tomcat 处理也就不要在 Tomcat 中配置压缩了。 以上是一些常用的配置参数还有好多其它的参数设置还可以继续深入的优化HTTP Connector 与 AJP Connector 的参数属性值可以参考官方文档的详细说明进行学习 vim /usr/local/tomcat/conf/server.xmlredirectPort8443 ##--71行--插入 minSpareThreads50 enableLookupsfalse disableUploadTimeouttrue acceptCount300 maxThreads500 processorCache500 URIEncodingUTF-8 maxKeepAliveRequests100 compressionon compressionMinSize2048 compressableMimeTypetext/html,text/xml,text/javascript,text/css,text/plain,image/gif,image /jpg,image/png/Tomcat多实例部署 1.安装tomcat [rootzy2 opt]# tar xf apache-tomcat-9.0.16.tar.gz [rootzy2 opt]# ls apache-tomcat-9.0.16 jdk-8u201-linux-x64.rpm nginx-1.18.0.tar.gz apache-tomcat-9.0.16.tar.gz mysql-5.7.20 php-7.1.10 Hello.class mysql-boost-5.7.20.tar.gz php-7.1.10.tar.bz2 Hello.java nginx-1.18.0 rh[rootzy2 opt]# mv apache-tomcat-9.0.16 /usr/local/tomcat2 [rootzy2 tomcat2]# ls bin conf lib logs README.md RUNNING.txt webapps BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work 2.配置tomcat环境变量 [rootzy2 tomcat2]# vim /etc/profile.d/tomcat.sh#tomcat1 export CATALINA_HOME1/usr/local/tomcat export CATALINA_BASE1/usr/local/tomcat export TOMCAT_HOME1/usr/local/tomcat#tomcat2 export CATALINA_HOME2/usr/local/tomcat2 export CATALINA_BASE2/usr/local/tomcat2 export TOMCAT_HOME2/usr/local/tomcat2source /etc/profile.d/tomcat.sh 3.修改 tomcat2 中的 server.xml 文件要求各 tomcat 实例配置不能有重复的端口号 [rootzy2 opt]# vim /usr/local/tomcat2/conf/server.xmlServer port8006 shutdownSHUTDOWN #22行修改Server prot默认为8005 - 修改为8006 Connector port8081 protocolHTTP/1.1 #69行修改Connector portHTTP/1.1 默认为8080 - 修改为8081 Connector port8010 protocolAJP/1.3 redirectPort8443 / #116行修改Connector port AJP/1.3默认为8009 - 修改为80104 .修改各 tomcat 实例中的文件 修改startup.sh 和 shutdown.sh 文件添加 tomcat 环境变量 vim /usr/local/tomcat/bin/startup.sh# ----------------------------------------------------------------------------- # Start Script for the CATALINA Server # ----------------------------------------------------------------------------- ##添加以下内容 export CATALINA_BASE$CATALINA_BASE1 export CATALINA_HOME$CATALINA_HOME1 export TOMCAT_HOME$TOMCAT_HOME1vim /usr/local/tomcat/bin/shutdown.sh# ----------------------------------------------------------------------------- # Stop script for the CATALINA Server # ----------------------------------------------------------------------------- export CATALINA_BASE$CATALINA_BASE1 export CATALINA_HOME$CATALINA_HOME1 export TOMCAT_HOME$TOMCAT_HOME1 vim /usr/local/tomcat2/bin/startup.sh# ----------------------------------------------------------------------------- # Start Script for the CATALINA Server # ----------------------------------------------------------------------------- export CATALINA_BASE$CATALINA_BASE2 export CATALINA_HOME$CATALINA_HOME2 export TOMCAT_HOME$TOMCAT_HOME2vim /usr/local/tomcat2/bin/shutdown.sh# ----------------------------------------------------------------------------- # Stop script for the CATALINA Server # ----------------------------------------------------------------------------- export CATALINA_BASE$CATALINA_BASE2 export CATALINA_HOME$CATALINA_HOME2 export TOMCAT_HOME$TOMCAT_HOME25. 启动各 tomcat 中的 /bin/startup.sh,并查看端口 [rootzy2 local]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.[rootzy2 local]# /usr/local/tomcat2/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat2 Using CATALINA_HOME: /usr/local/tomcat2 Using CATALINA_TMPDIR: /usr/local/tomcat2/temp Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64/jre Using CLASSPATH: /usr/local/tomcat2/bin/bootstrap.jar:/usr/local/tomcat2/bin/tomcat-juli.jar Tomcat started.[rootzy2 local]# netstat -lntp | grep java tcp6 0 0 :::8080 :::* LISTEN 118875/jav tcp6 0 0 :::8081 :::* LISTEN 120077/jav tcp6 0 0 127.0.0.1:8005 :::* LISTEN 118875/jav tcp6 0 0 127.0.0.1:8006 :::* LISTEN 120077/jav tcp6 0 0 :::8009 :::* LISTEN 118875/jav tcp6 0 0 :::8010 :::* LISTEN 120077/jav6. 浏览器访问测试 http://192.168.126.22:8080和http:192.126.126.22:8081
http://www.w-s-a.com/news/898116/

相关文章:

  • 用wordpress做购物网站龙岩品牌设计
  • 网站开发是指wordpress系统在线升级
  • 网站建设运营的灵魂是什么意思页面跳转中
  • 家政服务网站源码重庆建网站企业有哪些
  • 怎样分析一个网站做的好坏重庆长寿网站设计公司哪家专业
  • 百度助手app下载苏州seo关键词优化排名
  • 17网站一起做 佛山诸城网站建设多少钱
  • 郑州网站建设培训学校泉州做网站设计公司
  • 西峡做网站深圳建筑工务署官网
  • 单县网站惠州seo计费
  • 万网网站建设 优帮云怎样用记事本做网站
  • 注册域名后网站建设百度指数的功能
  • 怎么做伪静态网站山西网站建设设计
  • 做小型企业网站多少钱衡阳市建设局网站
  • 金华专业网站建设公司网站建设空间和服务器方式
  • 自己做的网站在浏览器上显示不安全吗wordpress revolution slider
  • 西安网站建设推广优化搜索引擎营销
  • 互联网站备案管理工作方案 工信部注册深圳公司需要什么条件
  • 网站网站服务器网站建设 物流
  • 国外开发网站手机网站建设制作
  • 怎么把自己做的网站传网上青岛工程建设监理公司网站
  • 网站301跳转效果商丘网站公司
  • 公司网站建设西安网站的架构与建设
  • 食品科技学校网站模板花溪村镇建设银行网站
  • 图片渐隐 网站头部flash地方志网站建设自查报告
  • 深圳做商城网站视觉品牌网站建设
  • 永康电子商务网站建设弹幕网站怎么做
  • 百川网站企业做网站要注意哪些
  • 球迷类的网站如何做网站建设需要哪些素材
  • 请问有重庆有做网站吗电子政务系统网站建设的基本过程