技术支持 云市场镜像产品 Java 运行环境 Tomcat 镜像使用指南

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; #刷新权限表,使配置生效 ```