Tomcat服务部署与Nginx负载均衡配置
一、中间键产品介绍
目前来说IBM的WebSphere,Oracle的Weblogic占据了市场上java语言Web站点的部分份额,该两种软件都是商业化的软件,由于性能优越,可靠性高等优点应用于大型互联网公司的Web场景中。
Tomcat自5.x版本以来,其性能上已经得到了大幅度的提升,开放性的架构和二次开发等特性,可以完全用在访问量不是很大的生产环境下,目前大多数用于JSP技术开发的电子商务网站基本上都应用了Tomcat。
中间键(提供JSP服务的软件)产品:
- RedHat JBoss
- Oracle Tuxedo
- Oracle Weblogic
- caucho Resin
- IBM WebSphere
- JSP Tomcat
页面:
- html Apache
- php LAMP LNMP
- jsp Tomcat
二、Tomcat软件简介
Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他将其变为开源项目,并由Sun贡献给Apache软件基金会。
三、Tomcat应用场景
Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,应用在中小型系统和并发访问用户不是很多的场合,是开发和调试JSP页面的首选,Tomcat也可处理静态的HTML页面但是能力不及Apache或Nginx,所以Tomcat通常作为一个servlet和JSP容器,单独运行在后端。
四、JDK软件简介
在安装Tomcat之前必须先安装JDK,JDK全称是Java Development Kit,是SUN公司免费提供的java语言的软件开发工具包,其中包含Java虚拟机(JVM),编写好的java源程序经过编译可生产java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平台性。
在平台兼容性方面,JDK作为解释字节码文件并根据此调用操作系统的API实现对应功能的java虚拟机,与操作系统位数密切相关,因此存在不同类型的版本,Tomcat也具有上述特征,CentOS7系统中默认已经安装了JDK
JDK中的Java组件:
javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码
- java:运行工具,运行.class的字节码
- jar:打包工具,将相关的类文件打包成一个文件
- javadoc:文档生成器,从源码注释中提取文档,注释需匹配规范
- jdb debugger:调试工具
- jps:显示当前java程序运行的进程状态
- javap:反编译程序
- appletviewer:运行和调试applet程序的工具,不需要使用浏览器
- javah:从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。
- javaws:运行JNLP程序
- extcheck:一个检测jar包冲突的工具
- apt:注释处理工具
- jhat:java堆分析工具
- jstack:栈跟踪程序
- jstat:JVM检测统计工具
- jstatd:jstat守护进程
- jinfo:获取正在运行或崩溃的java程序配置信息
- jmap:获取java进程内存映射信息
- idlj:IDL-to-Java编译器。将IDL语言转化为java文件
- policytool:一个GUI的策略文件创建和管理工具
- jrunscript:命令行脚本运行
五、安装Tomcat(主机192.168.200.112)
1、关闭防火墙和安全机制
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce
2、查看JDK是否安装
[root@localhost ~]# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-b10)
OpenJDK -Bit Server VM (build 25.222-b10, mixed mode)
3、卸载用rpm方式安装的JDK
方法一
[root@localhost ~]# rpm -qa | grep -i openjdk
java-1.8.-openjdk-headless-1.8.0.222.b10-.el7_6.x86_64
java-1.8.-openjdk-1.8.0.222.b10-.el7_6.x86_64 [root@localhost ~]# rpm -e java-1.8.-openjdk --nodeps //有依赖关系,解除依赖关系后面加 --nodeps
[root@localhost ~]# rpm -e java-1.8.-openjdk-headless
[root@localhost ~]# rpm -qa | grep -i openjdk
方法二
[root@localhost ~]# which java
/usr/bin/java [root@localhost ~]# rm -rf /usr/bin/java [root@localhost ~]# java -version
-bash: /usr/bin/java: 没有那个文件或目录
4、安装JDK
[root@localhost ~]# tar -xf jdk-8u191-linux-x64.tar.gz [root@localhost ~]# mv jdk1..0_191/ /usr/local/java //将解压后的包移动到指定目录下 [root@localhost ~]# /usr/local/java/bin/java -version //此时只有通过绝对路径才可以查看java的版本号信息 [root@localhost ~]# vim /etc/profile //修改 export JAVA_HOME=/usr/local/java //设置java的根目录 export PATH=$PATH:$JAVA_HOME/bin //在PATH环境变量中添加java根目录下的bin子目录 [root@localhost ~]# echo $PATH //在未执行修改的脚本时查看PATH变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# source /etc/profile //重置一下脚本
[root@localhost ~]# echo $PATH //再查一遍
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin
5、Tomcat安装
[root@localhost ~]# tar -xf apache-tomcat-8.5..tar.gz [root@localhost ~]# mv apache-tomcat-8.5. /usr/local/tomcat8 [root@localhost ~]# ls /usr/local/tomcat8/bin
bootstrap.jar setclasspath.sh
catalina.bat shutdown.bat
catalina.sh shutdown.sh
catalina-tasks.xml startup.bat
commons-daemon.jar startup.sh (启动文件)
commons-daemon-native.tar.gz tomcat-juli.jar
configtest.bat tomcat-native.tar.gz
configtest.sh tool-wrapper.bat
daemon.sh tool-wrapper.sh
digest.bat version.bat
digest.sh version.sh
setclasspath.bat //.bat Windows版本 //.sh Linus版本
6、启动
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started. [root@localhost ~]# netstat -anpt | grep :
tcp6 ::: :::* LISTEN /java
7、测试
六、设置Tomcat网页存放位置(主机192.168.200.112)
[root@localhost ~]# mkdir -p /web/webapp/ //创建存放网页的目录
[root@localhost ~]# vim /web/webapp/index.jsp //添加要存放的网页
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("Welcome to test site,http://www.test2.com");%>
</body>
</html> [root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp" path="" reloadable="flash"></Context> 注释:docBase="/web/webapp" //web应用的文档基准目录
path=" " //设置默认"类"
reloadable="flase" //设置监视"类"是否变化 [root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh //关一下机
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh //重新开
Using CATALINA_BASE: /usr/local/tomcat8
Using CATALINA_HOME: /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
测试
七、nginx负载均衡配置(主机192.168.200.111)
确保安装了nginx,80端口已经打开,直接修改配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
upstream tomcat_server {
server 192.168.200.112: weight=;
} server {
listen ;
server_name localhost;
location / {
rewrite ^(.*)$ https://$host$1 permanent;
}
location ~ \.jsp$ {
proxy_pass http://tomcat_server;
} charset utf-; [root@localhost ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@localhost ~]# nginx
nginx: [emerg] bind() to 0.0.0.0: failed (: Address already in use)
nginx: [emerg] bind() to 0.0.0.0: failed (: Address already in use)
nginx: [emerg] bind() to 0.0.0.0: failed (: Address already in use)
nginx: [emerg] bind() to 0.0.0.0: failed (: Address already in use)
nginx: [emerg] bind() to 0.0.0.0: failed (: Address already in use)
nginx: [emerg] still could not bind() [root@localhost ~]# nginx -s reload
测试
Tomcat服务部署与Nginx负载均衡配置的更多相关文章
- Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群
Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...
- Nginx负载均衡配置简单配置方法
http://www.jb51.net/article/121235.htm Nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至不同的Web服务器.下面通过 ...
- Linux笔记 #09# Tomcat多开以及Nginx负载均衡简单例子
索引 Tomcat怎样多开.. 1.添加环境变量(最基础.关键的步骤!) 2.改catalina.sh 3.改相关端口 Nginx负载均衡简单例子 Tomcat怎样多开.. 演示一下如何开两个(开n个 ...
- Mall电商项目总结(二)——nginx负载均衡配置和策略
1. nginx配置文件 用户在浏览器上输入,http://www.xwld.site/ 实际上是在访问服务器80端口,nginx 监听80端口,将用户的请求转发到8080和9080端口 . upst ...
- Docker 安装 Nginx 负载均衡配置
Docker 安装 # 1)安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 # 2)添加Docker软件包源(否则d ...
- nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- tomcat单机多应用部署配合Nginx负载均衡
一.Windows 配置tomcat . 安装两个tomcat服务器以上 . 配置环境变量 CATALINA_BASE:D:\servers\Tomcat8 CATALINA_HOME:D:\serv ...
- Nginx负载均衡配置实例详解
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...
- Nginx负载均衡配置实例详解(转)
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...
随机推荐
- pip 设置阿里云源
在~/.pip/pip.conf文件中添加或修改 mkdir ~/.pip [global] index-url = http://mirrors.aliyun.com/pypi/simple/ [i ...
- 海边拾贝-F-第三方项目
第三方网站,不定期更新: 陈浩个人博客: https://coolshell.cn/ 阮一峰个人博客:http://www.ruanyifeng.com/blog/2015/02/make.html ...
- python正则图片爬取
# conding:utf8 import requests import re import time if __name__ == "__main__": # 所有的数据 ur ...
- 前端实现的canvas支持多图压缩并打包下载的工具
# 技术栈 canvas jszip.js(网页端压缩解压缩插件JSZIP库) FileSaver.js(文件保存到本地库) 在线预览:http://htmlpreview.github.io/?ht ...
- Springboot2 Metrics之actuator集成influxdb, Grafana提供监控和报警
到目前为止,各种日志收集,统计监控开源组件数不胜数,即便如此还是会有很多人只是tail -f查看一下日志文件.随着容器化技术的成熟,日志和metrics度量统计已经不能仅仅靠tail -f来查看了,你 ...
- 【Java面试题】short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
昨天去面试,虽然体验不是很好, 但是看到了这个面试题,当时感觉无从下手,所以在这里记录一下. 解决这道题之前,先复习一下Java的基本数据类型转换规则,以便后面对面试题的理解. java的基本数据类型 ...
- conda opencv cv2.imshow无法使用
error: -------src-dir-------/opencv-2.4.10/modules/highgui/src/window.cpp:501: error: (-2) The funct ...
- 基于opencv 识别、定位二维码 (c++版)
前言 因工作需要,需要定位图片中的二维码:我遂查阅了相关资料,也学习了opencv开源库.通过一番努力,终于很好的实现了二维码定位.本文将讲解如何使用opencv定位二维码. 定位二维码不仅仅是为了识 ...
- Kafka学习笔记之Kafka性能测试方法及Benchmark报告
0x00 概述 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafka的性能,以及如何使用Kafka Manager监控Kafka的工作状态,最后给出了Kafka ...
- mssql附加的数据库查询的时候没有搜索权限
1.选中数据安全性-登录名-选择某个账户-右键-属性 2.服务器角色-选择public和systemadmin 3.用户映射-选中库-下面选中public 和owner