Linux高级实战专题篇:jspgou开源商城+tomcat多实例部署+nginx负载均衡代理+https访问
·
tomcat专题
tomcat是属于apache基金会下的一个免费开源的web应用服务器,属于轻量级应用
服务器。
注意:
java项目包 .war 需要tomcat+jdk .jar 需要jdk
tomcat运行需要借助jdk,.war包运行需要tomcat
JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和
JAVA工具。
tomcat的三个端口:
tomcat自身服务的端口:8005
tomcat和其他应用通信的端口:8009
tomcat给客户端浏览器访问页面使用的端口:8080**
知识点汇总:
1,tomcat安装
2,tomcat+jdk来运行项目 toncat配置文件
3,tomcat多实例 实现tomcat负载均衡
4,tomcat实现https 借助nginx 访问日志 gc日志如何使用
一,tomcat部署
bin #存放tomcat的管理脚本(二进制文件)
conf #tomcat的配置文件(主配置文件server.xml)
logs #tomcat日志存放目录
webapps #默认网站发布目录 ROOT #默认站点根目录
tomcat/bin/startup.sh #启动程序
tomcat/bin/shutdown.sh #关闭程序
解决Tomcat启动慢的方法:
yum install rng-tools # 安装rngd服务(熵服务,增大熵池)
systemctl start rngd # 启动服务
拓展学习ftp文件上传:
1,yum -y install vsftpd && systemctl start vsftpd && mkdir /var/ftp/share && chmod 777 /var/ftp/share/ -R
2,vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES 打开文件上传
anon_mkdir_write_enable=YES 打开下载的功能
3,systemcctl restart vsftpd
4,ftp://192.168.222.131 在windows上的share文件中就可以进行上传下载文件
1,安装JDK和tomcat
[root@192 ~]# tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local/
[root@192 ~]# tar xf apache-tomcat-7.0.34.tar.gz -C /usr/local/
用软连接和mv改名都可以的:
[root@192 ~]# ln -s /usr/local/jdk1.8.0_91 /usr/local/java
[root@192 ~]# ln -s /usr/local/apache-tomcat-7.0.34 /usr/local/tomcat
2,设置环境变量
[root@192 ~]# vim /etc/profile
JAVA_HOME=/usr/local/java
TOMCAT_HOME=/usr/local/tomcat
PATH=$JAVA_HOME/bin:$PATH
PATH=$TOMCAT_HOME/bin:PAHT
export JAVA_HOME TOMCAT_HOME PATH
[root@192 ~]# source /etc/profile 让环境变量生效
[root@192 ~]# java -version 查看安装好的jdk版本
3,启动或者关闭tomcat
[root@192 ~]# /usr/local/tomcat/bin/startup.sh
或者/usr/local/tomcat/bin/catalina.sh start
[root@192 ~]# /usr/local/tomcat/bin/shutdown.sh
或者/usr/local/tomcat/bin/catalina.sh stop
4,8009通信的端口没启动解决方案
[root@192 ~]# vim /usr/local/tomcat/conf/server.xml
去掉8009端口配置的注释,然后又关闭服务,再启动服务,查看端口
5,测试tomcat的web界面
http:192.168.222.131:8080
6,安装mysql数据库
[root@192 ~]# yum -y install mariadb mariadb-server
#直接下载mariadb服务
[root@192 ~]#systemctl start mariadb #启动数据库
[root@192 ~]#mysqladmin -uroot password 'Qianfeng@123'
#mariadb数据库没有初始化密码,可以直接设置新的密码
[root@192 ~]#mysql -uroot -pQianfeng@123
#使用设置好的密码登录数据库
[root@192 ~]#creat database jspgou default=utf8;
#创建一个jspgou的库名并指定默认的字符集utf8
7,jspgou产品上线
[root@192 ~]#yum -y install unzip 下载解压软件
[root@192 ~]#unzip jspgouV6-ROOT.zip 解压软件
[root@192 ~]#cp -r ROOT /usr/local/tomcat/webapps/
#替换网站的目录为商城目录
更改数据库相关配置:
[root@192 ~]#
vim /usr/local/tomcat/webapps/ROOT/WEB-INF/config/jdbc.properties
jdbc.url=jdbc:mysql://127.0.0.1:3306/创建好的数据库名
?characterEncoding=UTF-8
jdbc.username=root
jdbc.password=Qianfeng@123
[root@192 ~]#mysql -uroot -pQianfeng@123 jspgou < ./DB/jspgou.sql
#导入数据,注意.sql结尾的文件,导数据用的
注意jspgou商城系统管理后台登录:
http://localhost:8080/jeeadmin/jspgou/index.do
用户名:admin
密 码:123456
拓展:编辑一个tomcat启动的脚本,方便服务启动和关闭
[root@192 ~]#vim tomcat
#!/bin/bash
/usr/local/tomcat/bin/catalina.sh $1
[root@192 ~]#chmod a+x tomcat
[root@192 ~]#mv tomcat /usr/bin
[root@192 ~]#tomcat start 启动
[root@192 ~]#tomcat stop 关闭
mysql数据库导入数据报错后的解决方案:两行内容
[root@jspgou DB]# vim /etc/my.cnf
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUB
explicit_defaults_for_timestamp=1
修改完配置文件后重新启动服务后在导入数据库

二,tomcat多实例部署
多实例:一台机器多个实例(类似虚拟主机),共用一个网站目录,需要改变的是8080端口和8005端口,8009通信端口直接注释或者删除。
1,在一个工作目录下创建多个实例目录
[root@192 ~]#mkdir -p /usr/local/tomcat/tomcat1/{conf,logs,temp,woek}
#(客户端访问的端口改为8081,服务器自身的端口改为8091)
[root@192 ~]#mkdir -p /usr/local/tomcat/tomcat2/{conf,logs,temp,woek}
#(客户端访问的端口改为8082,服务器自身的端口改为8092)
[root@192 ~]#mkdir -p /usr/local/tomcat/tomcat3/{conf,logs,temp,woek}
#(客户端访问的端口改为8083,服务器自身的端口改为8093)
2,拷贝网站的发布目录/usr/local/tomcat/webapps到根下
[root@192 ~]#cp -r /usr/local/tomcat/webapps /
3,修改tomcat的配置文件
[root@192 ~]#vim /usr/local/tomcat/instance1/conf/server.xml
<Server port="8091" shutdown="SHUTDOWN"> //修改8005
<Connector port=**"8081"** protocol="HTTP/1.1" //修改8080
connectionTimeout="20000"
redirectPort="8443" />
注释或者删除8009的配置
<Host name="localhost" appBase="/webapps" //修改网站基准目录
unpackWARs="true" autoDeploy="true">
......
三个实例每个都要做...
4,三个实例目录下依次创建tomcat多实例启动的脚本
[root@192 ~]#vim /usr/local/tomcat/tomcat1/1.sh
#!/bin/bash
. /etc/init.d/functions
export CATALINA_BASE="/usr/local/tomcat/tomcat1"
export CATALINA_HOME="/usr/local/tomcat"
case $1 in
start)
$CATALINA_HOME/bin/startup.sh
;;
stop)
$CATALINA_HOME/bin/shutdown.sh
;;
restart)
$CATALINA_HOME/bin/shutdown.sh
sleep 5
$CATALINA_HOME/bin/startup.sh
;;
esac
三个工作目录都要写入这个脚本!!!
5,三个实例依次启动
[root@192 ~]#/usr/local/tomcat/instance1/1.sh start
[root@192 ~]#ss -lntp |grep 80 下面是三个实例启动后的端口
LISTEN 0 100 :::8081 :::* users:(("java",pid=7288,fd=48))
LISTEN 0 100 :::8082 :::* users:(("java",pid=7468,fd=48))
LISTEN 0 100 :::8083 :::* users:(("java",pid=7496,fd=48))
LISTEN 0 1 ::ffff:127.0.0.1:8091 :::* users:(("java",pid=7288,fd=61))
LISTEN 0 1 ::ffff:127.0.0.1:8092 :::* users:(("java",pid=7468,fd=61))
LISTEN 0 1 ::ffff:127.0.0.1:8093 :::* users:(("java",pid=7496,fd=61))
6,界面网址测试
192.168.222.131:8081
192.168.222.131:8082
192.168.222.131:8083
三,nginx为tomcat做负载均衡(新机子)
[root@192 ~]#yum -y install nginx
[root@192 ~]#systemctl start nginx
[root@192 ~]#vim /etc/nginx/conf/nginx.conf (主配值文件修改)
http {
upstream tomcat_pool {
#ip_hash; 这个是将某一个客户端的请求固定到某一个服务器来响应
server 192.168.122.105:8080 weight=1 max_fails=2 fail_timeout=2;
server 192.168.122.105:8081 weight=1 max_fails=2 fail_timeout=2;
server 192.168.122.105:8082 weight=1 max_fails=2 fail_timeout=2;
server 192.168.122.105:8083 weight=1 max_fails=2 fail_timeout=2;
}
这个负载均衡池要写在http{}模块里面!!!
[root@192 ~]#vim /etc/nginx/conf.d/proxy.conf (子配置文件添加)
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://tomcat_pool;
}
}
网页测试:192.168.222.132
四,tomcat的https安全访问部署
部署tomcat服务,项目做到用https访问,使用nginx去做,访问任意一个子网站,都是https。
先有自己申请的域名,然后才能申请ssl证书:阿里云/华为云的证书,CA机构自己颁发
在公司中动态资源和静态资源都是分开:
nginx 运行静态界面 rewrite .* https://www.xingdiancloud.com
tomcat+jdk 运行动态界面
jspgou 的项目是 静态和动态在一起 8080
该项目部署架构:tomcat多实例+jdk mariadb(数据库单独部署) nginx负载均衡代
理单独部署
自己总结
tomcat多实例http跳转https
1,上传ssl的证书(nginx)
例如:scs1650456753622_chenshuangyin.top_server.crt
scs1650456753622_chenshuangyin.top_server.key
2,主配置文件负载均衡配置:
vim /nginx.conf
http {
#access_log logs/access.log main;
upstream tomcat {
server 124.71.72.167:8081;
server 124.71.72.167:8182;
server 124.71.72.167:8183;
}
}
3,子配置文件代理配置:
vim /conf.d/tomcat.conf
server {
listen 80;
server_name www.chenshuangyin.top;
location / {
return 301 https://www.chenshuangyin.top$request_uri;
}
}
server {
listen 443 ssl;
server_name www.chenshuangyin.top;
ssl_certificate /etc/nginx/scs1650456753622_chenshuangyin.top_server.crt;
ssl_certificate_key /etc/nginx/scs1650456753622_chenshuangyin.top_server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://tomcat;
}
}
《ssl证书的配置nginx.conf.default里面有,负载均衡和ssl证书都可以在
nginx.conf.default这里面进行修改配置》
更多推荐


所有评论(0)