Tomcat 镜像使用指南
操作系统:Ubuntu / CentOS
软件明细:Jdk - Tomcat - Mysql - Nginx - Vsftp
注:各个软件版本以云市场镜像中产品介绍为准。
** 密码存储位置 **
/alidata/account.log
文件中 。
** 查看密码 ** 进入服务器的系统中,可以在任意的目录下,执行以下命令
cat /alidata/account.log
注意:cat 后面要有空格 ** 修改 Ftp 的密码 **
passwd www
然后输入您的 Ftp 新密码。
** 修改 Mysql 的密码 **
mysqladmin -uroot -p旧密码 password 新密码
注意:-p 和旧密码之间没有空格 ,password 和新密码之间有空格
所有软件 ( 除 ftp 以外 ) 都采用源代码方式安装 , 安装目录单独分离到 /alidata 目录下
软件的主目录:/alidata
Web 主目录:/alidata/www/default
Ftp 主目录:/alidata/www/ftpdir
Nginx 主目录:/alidata/server/nginx
Nginx 配置文件主目录:/alidata/server/nginx/conf
Tomcat 配置目录: /alidata/sever/tomcat*/conf/
Tomcat 默认网站目录: /alidata/sever/tomcat*/webapps/ROOT/
Mysql 主目录:/alidata/server/mysql
Mysql 配置文件:/etc/my.cnf
** 日志目录 **
/alidata/log/nginx
为 Nginx 存放日志主目录
/alidata/log/mysql
为 Mysql 存放日志主目录
** init 目录 **
/alidata/init
为当用户用镜像创建系统后,当且仅当用户在第一次启动系统的时候,调用此目录下的脚本来初始化 Ftp 及 Mysql 的密码(随机密码)。
** 软件操作命令汇总 **
nginx:
/etc/init.d/nginx start|stop|restart
tomcat:
/alidata/server/tomcat*/bin/startup.sh|shutdown.sh
mysql:
/etc/init.d/mysqld start|stop|restart
ftp:
/etc/init.d/vsftpd start|stop|restart
Jdk 版本切换:
/root/select_jdk_version.sh
Tomcat 版本切换:
/root/select_tomcat_version.sh
Ftp & Mysql 密码更改:
/alidata/init/initPasswd.sh
注: 1. Tomcat 需要手动启动,默认开机不会自动启动。 2. Tomcat8 版本在 jdk1.6 情况下,存在版本不兼容问题,请悉知。 3.版本切换命令仅适用于 JAVA 多版本镜像。
教程一、部署项目
1.在使用镜像安装系统后,在 /alidata/server/nginx/conf/vhosts 目录下,我们可以看到一个默认的配置文件 default.conf 。关于如何配置网站,我们可以参考该文件中的内容(#号后面为注释说明):
server {
listen 80 default; #默认监听80端口
server_name _; #默认ip/域名都可访问
index index.html index.htm index.jsp; #定义索引文件的名称
root /alidata/www/default; #定义服务器的默认网站根目录位置
location ~ \.jsp$ {
proxy_pass http://127.0.0.1:8080;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
access_log /alidata/log/nginx/access/default.log;
}
2.根据以上默认配置,我们进入网站根目录 /alidata/www/default/可以看到是做了一个软连接到 Tomcat 存放项目的目录:/alidata/server/tomcat7/webapps/ROOT
3.访问服务器 http://ip:80 可以访问到下边页面
假如我们有个demo.jiagouyun.com的域名的网站需要部署在云主机上。以下我们以部署tomcat的应用为例,来详细介绍一下网站的部署:
3.1 首先,我们需要备案此域名。如果没备案域名,此域名会被运营商拉入黑名单不能使用的哦。针对备案问题,您可以在阿里云以工单的形式反馈,在这里不再过多阐述。 如果您的域名已成功备案,您需要把此域名解析的ip地址设置为云主机的公网 ip 。 demo.jiagouyun.com 是驻云公司的二级域名,由于此域名是在万网购买注册的,所以我们登陆到 www.net.cn 管理后台,在域名管理中,我们增加一个 demo.jiagouyun.com 的二级域名,记录值即我们域名解析的 ip ,这里填写我们云主机的公网 ip 。
3.2 然后,我们通过 ftp 上传网站资源到 /alidata/www/ftpdir 下, 以下为部署 jsp 代码的网站:
cd /alidata/www/ftpdir unzip jiagouyun_res.zip -d /alidata/www/jiagouyun/ (上传的资源包以jiagouyun_res.zip为例) chown www:www /alidata/www/jiagouyun -R cd /alidata/www/jiagouyun find ./ -type f | xargs chmod 644 find ./ -type d | xargs chmod 755 3.3 最后,我们需要配置 nginx ,并让 nginx 重新加载一下配置,即可完成我们网站的配置。我们可以在可以在 /alidata/server/nginx/conf/vhosts 目录下新建一个 jiagouyun.conf 文件(文件名必须以 .conf 结尾, jiagouyun 为自取名称,可以为其它名称),并且加入以下内容:
server {
listen 80;
server_name demo.jiagouyun.com;
index index.html index.htm index.jsp;
root /alidata/www/jiagouyun;
location ~ \.jsp$ {
proxy_pass http://127.0.0.1:8080;
}
access_log /alidata/log/nginx/access/jiagouyun.log;
}```
重启tomcat服务:
/alidata/server/tomcat7/bin/shutdown.sh /alidata/server/tomcat7/bin/startup.sh
** 备注:关于多项目部署 **
假如我们还有另外一个 demo2.jiagouyun.com 的 java 项目要部署。在 /alidata/server/nginx/conf/vhosts 目录下新建一个 demo2.conf 文件(文件名必须以 .conf 结尾, demo2 为自取名称,可以为其它名称),并且加入以下内容:
server { listen 80; server_name demo2.jiagouyun.com; index index.jsp; #项目必须要放在webapps目录下 root /alidata/server/tomcat7/webapps/demo2; location ~ .jsp$ { proxy_pass http://127.0.0.1:8080; } access_log /alidata/log/nginx/access/demo2.log; } chown www:www -R /alidata/server/tomcat7/webapps/demo2 #赋予权限, /etc/init.d/nginx reload /etc/init.d/tomcat7 restart #重启tomcat
注意: 1.此项目部署指定的项目目录为 /alidata/server/tomcat7/webapps/demo2 , 跟《附录教程:部署项目》示例中 /alidata/www/default (软链接到 /alidata/server/tomcat7/webapps/ROOT/ 默认项目目录)有所不同。 所以部署 demo2.jiagou.com 后,我们访问项目的路径要变成: http://demo2.jiagou.com/demo2/index.jsp 2.如果输入 http://demo2.jiagou.com/index.jsp ,则访问的是 webapps 目录中默认 ROOT 项目中的 index.jsp 运行后的结果。
## 教程二:将网站迁移至数据盘
用镜像生成系统后,网站的数据目录都默认在系统盘的 /alidata/www 目录下。如果您的应用数据量较大,系统盘默认的20G大小可能不够用。这需要我们将网站迁移至数据盘中。
1.首先分区并格式化我们的数据盘。如果已经格式化数据盘,此步可以不用做。
2.以《附录教程一:部署网站》为例,然后我们执行以下命令迁移 jiagouyun 至数据盘中:
/etc/init.d/nginx stop #首先停止nginx服务 /alidata/server/tomcat6/bin/shutdown.sh #首先停止tomcat服务 cd / #进入根目录下 mount /dev/xvdb1 /mnt/ #将第一块数据盘挂载至mnt目录下,也可以根据您自己的需要,挂载至其他数据盘中。 mkdir -p /mnt/www /mnt/log cp -a /alidata/www/jiagouyun /mnt/www/ #将数据迁移至数据盘中
3、vim /etc/nginx/conf.d/jiagouyun.conf
将“root /alidata/www/jiagouyun;”更改为“/mnt/www/jiagouyun;”
将“access_log /alidata/log/nginx/access/jiagouyun.log;”
更改为“access_log /mnt/log/jiagouyun.log;”
4、启动tomcat、nginx完成迁移:
/alidata/server/tomcat7/bin/startup.sh
/etc/init.d/nginx start
## 教程三、将 mysql 迁移至数据盘中
镜像部署的 mysql 的安装目录及数据目录都存放在系统盘中,同样考虑到系统盘空间不够用的情况,后面如果我们部署的 mysql 数据量很大,这里就需要我们将我们的 mysql 迁移至数据盘中。mysql 迁移至数据盘中,一般指将 mysql 的数据目录迁移至数据盘中。具体操作步骤可以参考如下:
首先格式化磁盘,并将数据盘挂载在 mnt 目录下(根据您自己的需求,也可以挂载在其他目录下)
mkdir -p /mnt/data
用 mysqldump 命令导出您项目所有的数据,命令参考如下
mysqldump -p --all-databases > all.sql
停止 mysql
/etc/init.d/mysqd stop vim /etc/init.d/mysqd
将文件中 “ datadir=/alidata/server/mysql/data ” 中的目录地址更改为您迁移至数据盘中的目录地址,即 “ datadir=/mnt/data ” 。
然后用以下命令初始化一个全新的数据库环境
/alidata/server/mysql/scripts/mysql_install_db --basedir=/alidata/server/mysql --datadir=/mnt/data --user=mysql
值得注意的是 datadir 为您 mysql 的数据目录。
启动 mysql ,然后将数据还原至新的数据盘中
/etc/init.d/mysqld start mysql < all.sql /etc/init.d/mysqld restart
## 教程四、配置 mysql 远程连接
很多用户反馈,用镜像生成系统后,ECS 本地能够连接 mysql ,为何远程连接不上 mysql 呢?这是因为默认安装的 mysql ,出于安全考虑,只能本地连接。
如果您需要远程连接,这里就需要设置一下 mysql 的权限表。具体设置的步骤如下:
1、在您的ECS上连接进入 mysql 。
2、执行以下 mysql 命令:
use mysql #打开 mysql 数据库
将 host设置为 % 表示任何 ip 都能连接 mysql ,当然您也可以将 host 指定为某个 ip 。
update user set host='%' where user='root' and host='localhost'; flush privileges; #刷新权限表,使配置生效
然后我们就能远程连接我们的 mysql 了。
3、如果您想关闭远程连接,恢复 mysql 的默认设置(只能本地连接),您可以通过以下步骤操作:
use mysql #打开 mysql 数据库 update user set host='localhost' where user='root'; #将 host 设置为 localhost 表示只能本地连接 mysql flush privileges; #刷新权限表,使配置生效 ```