Java Web环境搭建
1. 初识Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。Tomcat 是 Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行 Tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。
- Tomcat端口:关闭端口 8005 启动监听端口 8080
- Tomcat:采用了同步阻塞的模式
- 配置文件: /usr/local/tomcat/conf/server.xml
- 网页打包目录:/usr/local/tomcat/webapps/
- 网页目录:/usr/local/tomcat/webapps/ROOT/WEB-INF/
- JDK 是解析器 用来解析并执行其中的JSP脚本
2. Java Web环境:Nginx+JDK+Tomcat+MySQL
3. 环境部署流程
1. 安装JDK(Java解析器)
-
首先安装gcc
# yum -y install gcc
-
将软件包上传、解压、并移至指定位置
cp -r /root/tomcat/jdk1.7.0_25/ /usr/local/jdk/
-
查看java是否安装成功
# java -version env | grep tomcat env | grep jdk echo $PATH
2. 安装Tomcat
-
将软件包上传、解压、并复制到指定目录下
# cp -a 解压目录 /usr/local/tomcat cp -r /root/tomcat/apache-tomcat-7.0.42 /usr/local/tomcat/
-
配置 JDK和Tomcat 的环境变量
- JDK和Tomcat不是通过编译或二进制包安装,因此没有环境变量来提供安装过程中生成的相关文件路径。设置环境变量是为了让命令在执行时能够通过查找环境变量找到相应的文件,从而使得在Linux环境下可以无需安装即可直接执行相关命令
# vim /etc/profile # 添加以下内容
export JAVA_HOME=/usr/local/jdk
export TOMCAT_HOME=/usr/local/tomcat
export JAVA_BIN=/usr/local/jdk/bin
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
T
O
M
C
A
T
H
O
M
E
/
b
i
n
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
TOMCAT_HOME/bin export CLASSPATH=
TOMCATHOME/binexportCLASSPATH=JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
3. **将Tomcat的启动脚本赋予执行权限**
```bash
# chmod +x /usr/local/tomcat/bin/*
-
开启Tomcat
/usr/local/tomcat/bin/catalina.sh start netstat -antp # 查看端口,确认是否启动
-
在客户端访问页面进行测试
192.168.10.20:8080
3. 安装MySQL数据库
-
安装依赖包ncurses-devel
# yum -y install ncurses-devel gcc
-
将MySQL文件进行传输到192.168.20.10上进行安装
# useradd -r -s /sbin/nologin mysql # ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312 # make # make install
-
生成配置文件
# cp -a support-files/my-medium.cnf /etc/my.cnf # ln -s /usr/local/mysql/bin/* /usr/local/bin/ # ln -s /usr/local/mysql/sbin/* /usr/local/sbin/
-
初始化数据库,生成授权表
# cd /usr/local/mysql # ./bin/mysql_install_db --user=mysql
-
生成启动管理脚本,启动MySQL并设置开机自启
# cd ~/mysql-5.1.55/support-files # cp -a mysql.server /etc/init.d/mysqld # chmod +x /etc/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on # service mysqld start|stop|restart
-
为数据库的管理用户root设置登录密码
# mysqladmin -uroot password 123456
-
登录数据库,查看是否安装正确
4. 安装Nginx
-
解压Nginx
tar -xf nginx-1.27.6.tar.gz
-
安装Nginx依赖包
yum -y install pcre-devel zlib-devel gcc
-
添加用户
useradd -r -s /sbin/nologin nginx
-
编译并安装
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/ make make install
-
修改Nginx配置文件
vim /usr/local/nginx/conf/nginx.conf user nginx; upstream tomcat { # 添加负载调度(为了后期扩展更多Tomcat服务器方便) server 192.168.10.20:8080; } location / { # 添加反向代理 proxy_pass http://tomcat; }
-
重启服务
/usr/local/nginx/conf/nginx -t /usr/local/nginx/sbin/nginx -s reload
-
在客户端进行测试,输入Nginx地址,打开的为Tomcat部署的网站
4. 部署JAVA的WAR包
-
在
/usr/local/tomcat/conf/server.xml
配置文件中的 server 区域中添加内容vim /usr/local/tomcat/conf/server.xml <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="xbz.war" debug="0" privileged="true"/> </Host>
-
将war包拷贝到webapps目录中
cp -r /root/tomcat/xbz.war /usr/local/tomcat/webapps/
3. **删除网站的ROOT目录**
```bash
cd /usr/local/tomcat/webapps/
rm -rf *
-
重启Tomcat服务
/usr/local/tomcat/bin/catalina.sh stop /usr/local/tomcat/bin/catalina.sh start
-
测试
使用客户端浏览访问Nginx服务的端口
注意:原本的 Tomcat 使用8080端口进行访问,也可以将端口修改为80使用IP直接访问,修改
/usr/local/tomcat/conf/server.xml
配置中的8080 改变为 80(切记不要和其他web服务器冲突)
5. 创建多个Tomcat实例(拓展)
-
首先将Tomcat进行停止
/usr/local/tomcat/bin/catalina.sh stop
-
拷贝原来的Tomcat到另外一个目录,如tomcat-2,清除logs目录
cd /usr/local/ cp -r tomcat tomcat2 rm -rf tomcat2/logs/*
-
修改Tomcat-2中的
/conf/server.xml
文件,把shutdown和Connector端口修改成另外的数值,关闭端口修改为 8006,连接端口修改为8090vim /usr/local/tomcat2/conf/server.xml <Server port="8006" shutdown="SHUTDOWN"> <Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/> </Server>
-
修改startup.sh和shutdown.sh文件
vim /usr/local/tomcat/bin/startup.sh
vim /usr/local/tomcat/bin/shutdown.sh
在第一行均加入 export CATALINA_HOME=/usr/local/tomcat2
-
启动Tomcat
/usr/local/tomcat/bin/catalina.sh start /usr/local/tomcat2/bin/catalina.sh start # netstat -antp # 查看8080和8090端口是否正常启动
-
查看结果
浏览
http://192.168.10.20:8080
和http://192.168.10.20:8090
可以直接将8090写入配置好的Nginx负载均衡中
课外扩展
- 遇到问题时,首先要明确需要检查的对象,包括文件、数据库内容以及日志等,进而采取有效的排查方法。解决问题的能力和速度是运维人员的核心价值所在
- 例子:如何正确进行邮件服务连接数据库的错误排查?
在排查邮件服务连接数据库失败的问题时,需要按照从源端到目标端的顺序进行检查。首先,确认配置文件中是否有数据库相关的信息,如数据库驱动、IP地址、账号密码等是否填写正确。其次,手动使用MySQL命令测试导入的账号密码是否能成功连接数据库。最后,检查数据库内部,包括导入的SQL文件是否成功、数据库是否存在、表是否存在以及用户信息是否准确无误。通过这些步骤,可以系统地定位并解决连接数据库失败的问题。 - 链路级负载是更加底层的负载方式,它不涉及匹配,仅通过链路接口来分配数据包。
- 环境变量在系统中非常重要,它们根据用户登录或对应shell环境的不同,让同一个变量具备不同的值。
- C、C++、C#、Java是 编译型编程语言(如Shell、Python)是解释型语言。解释型语言只需解析器就能执行,而编译型编程语言则需要编译器将代码编译成二进制后才能运行。LAMP环境等部署的服务器主要适配解释型语言