Linux 下 Nginx + JDK + Tomcat + MySQL 安装指南

时间:2024-01-19 21:19:44

转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52026342

Nginx 是一款高性能的 http 服务器/反向代理服务器/电子邮件代理服务器,还可以配置虚拟主机。官方测试 Nginx 能够支持 5 万的并发连接,并且 CPU、内存等资源消耗却非常低,运行非常稳定。Nginx主要优点有可以实现高并发、部署简单、内存消耗少、成本低等,主要缺点有rewrite功能不够强大,模块没有Apache的多。本篇主要讲解 Nginx + JDK + Tomcat + MySQL 的安装方法,注重实用性,文章每个部分之间没有太大关系,可根据需求分开学习。这里 Linux 选择CentOS 版本,通过 SSH 进行远程操作,本地环境如果是 Windows 则可以尝试安装 PuTTY 或 SecureCRT,如果是 Mac 则直接使用终端工具即可。

这里 Linux 选择 CentOS 7.2。

1.Linux下安装Nginx

# yum -y install vim*                          //安装vim编辑器
# yum -y install gcc gcc-c++ autoconf automake //gcc、gcc-c++库文件(-y:全部yes,autoconf:自动配置,automake:自动编译)
# yum -y install pcre pcre-devel //Nginx依赖包
# yum -y install zlib zlib-devel
# yum -y install openssl openssl-devel //openssl库 # wget -P /usr/local http://nginx.org/download/nginx-1.12.2.tar.gz
# cd /usr/local
# tar -zxvf nginx-1.12.2.tar.gz //解压缩
# cd nginx-1.12.2
# ./configure //配置
# make
# make install //安装
# cd /usr/local //如果存在nginx文件夹,则安装成功
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Nginx的启动 (如果启动后访问失败,请关闭防火墙)、停止、重新加载配置文件命令:

# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf         //启动
# ps -ef|grep nginx //查看Nginx的PID,启动后会有master和worker两个进程 # /usr/local/nginx/sbin/nginx -s stop //停止 # /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf //验证配置文件的正确性
# /usr/local/nginx/sbin/nginx -s reload //重新加载配置文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.Linux下安装jdk

1.安装open jdk

# yum list installed | grep java          //查看自带jdk是否已安装
# yum -y remove java-1.7.0-openjdk* //卸载系统自带mysql数据库,若有多个依赖文件则依次卸载
# yum -y remove tzdata-java.noarch # yum -y list java* //查看yum库上的mysql版本信息
# yum -y install java-1.8.0-openjdk*
# java -version //安装成功,查看版本号
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.安装oracle jdk

下载 oracle jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html
然后上传 oracle jdk 安装包至服务器并安装 oracle jdk:

$ scp ~/Downloads/jdk-8u144-linux-x64.tar.gz root@192.168.2.21:/usr/local
$ ssh root@192.168.2.21 //SSH连接
# cd /usr/local
# tar -zxvf jdk-8u144-linux-x64.tar.gz //解压缩
# mv jdk1.8.0_144/ jdk //重命名
# vi /etc/profile //编辑
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在最后面添加下面代码配置 java 的环境变量:

JAVA_HOME="/usr/local/jdk"
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
PATH=".:$PATH:$JAVA_HOME/bin"
CATALINA_HOME="/usr/local/tomcat"
export JAVA_HOME CATALINA_HOME
  • 1
  • 2
  • 3
  • 4
  • 5
# source /etc/profile                                   //更新profile文件
# java -version //安装配置成功,查看版本号
  • 1
  • 2
  • 3

3.Linux下安装Tomcat

# wget -P /usr/local http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.0.47/bin/apache-tomcat-8.0.47.tar.gz
# cd /usr/local
# tar -zxvf apache-tomcat-8.0.47.tar.gz //解压缩
# mv apache-tomcat-8.0.47/ tomcat //重命名为tomcat
  • 1
  • 2
  • 3
  • 4
  • 5

Tomcat 默认部署项目的路径是 /usr/local/tomcat/webapps/

# /usr/local/tomcat/bin/startup.sh               //启动Tomcat服务器
# /usr/local/tomcat/bin/shutdown.sh //停止Tomcat服务器
  • 1
  • 2
  • 3

1.Tomcat爬过的坑

Tomcat 下允许访问软链接(symbol link)的设置,编辑 conf/context.xml,Context 节点下添加:

<!-- Tomcat设置支持软连接 -->
<Resources allowLinking="true"/>
  • 1
  • 2

CentOS 7 下 Tomcat 启动慢的原因及解决方案

# yum -y install rng-tools                       //安装rngd服务(熵服务,增大熵池)
# systemctl start rngd //启动服务
# systemctl enable rngd //设置开机自启动
  • 1
  • 2
  • 3
  • 4

2.使用Maven在Tomcat下热部署

要实现热部署,自然就需要通过 Maven 操作 Tomcat,所以就需要 Maven 取得操作 Tomcat 的权限,在 Tomcat 的安装目录下,修改 conf/tomcat-users.xml 文件,在 < tomcat-users> 节点下增加如下配置:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui, manager-script"/>
  • 1
  • 2
  • 3

重启 Tomcat,使用 Maven 在 Tomcat 下热部署需要在 pom.xml 配置 Tomcat 插件:

<pluginRepositories>
<!-- 添加远程仓库节点 -->
<pluginRepository>
<id>alfresco-public</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
<build>
<!-- 添加tomcat插件 -->
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat8-maven-plugin</artifactId>
<version>3.0-r1756463</version>
<configuration>
<port>8080</port>
<path>/</path>
<!-- 系统热部署配置 -->
<url>http://192.168.2.21:8080/manager/text</url>
<username>tomcat</username>
<password>tomcat</password>
</configuration>
</plugin>
</plugins>
</build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

初次部署可以使用 tomcat8:deploy 命令,如果已经部署过使用 tomcat8:redeploy 命令。

4.Linux下安装MySQL5.7

# yum list installed | grep mysql         //查看自带mysql是否已安装
# yum -y remove mysql-libs.x86_64 //卸载系统自带mysql数据库,若有多个依赖文件则依次卸载 # wget -P /usr/local https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
# rpm -ivh mysql57-community-release-el7-11.noarch.rpm //安装mysql源 # yum -y list mysql* //查看yum库上的mysql版本信息
# yum -y install mysql-server mysql mysql-devel //安装mysql
# service mysqld start //启动mysql
# systemctl status mysqld //查看mysql的启动状态 # systemctl enable mysqld //设置开机自启动
# systemctl daemon-reload
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

MySQL 安装完成之后,会在 /var/log/mysqld.log 文件中给 root 生成了一个默认密码。我们需要找到 root 默认密码,然后登录 mysql 进行修改:

# grep 'temporary password' /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: +i:q-r<::0gI # mysql -u root -p //输入生成的默认密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; //修改root密码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

MySQL5.7 默认安装了密码安全检查插件,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; //添加mysql用户并授权远程登录
  • 1
  • 2

MySQL 默认配置文件路径分别如下:

配置文件:/etc/my.cnf
日志文件:/var/log/ 和 /var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
  • 1
  • 2
  • 3
  • 4
  • 5

配置默认编码为 utf8:

# vim /etc/my.cnf                       //在[mysqld]下添加编码配置
  • 1
  • 2
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
  • 1
  • 2
  • 3
# service mysqld restart               //重启MySQL
  • 1
  • 2

找一台电脑测试一下,远程登录 MySQL,登进成功。