## # 安装依赖

安装以下依赖软件：

- Redis 2.8或以上版本
- MySQL 5.7或以上版本
- Apollo配置中心 (可选)
- Eureka服务注册中心

### # 安装MySQL

- 操作系统 CentOS 6.5
- MySQL 5.7.30

1. 下载MySQL

    wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar

2. 解压

    tar -xvf mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar

3. 安装

    sudo yum install mysql-community-{server,client,common,libs}-*

4. 启动

    sudo service mysqld start

启动成功会显示以下信息：

    [root@localhost ~]# sudo service mysqld start
    Initializing MySQL database:                               [  OK  ]
    Starting mysqld:                                           [  OK  ]

5. 初始密码

    sudo grep 'temporary password' /var/log/mysqld.log

6. 使用初始密码登录

    mysql -uroot -p

7. 修改密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

8. 退出登录

    quit

### # 安装Redis 6.0.8

1. 下载解压并编译

    $ wget http://download.redis.io/releases/redis-6.0.8.tar.gz
    $ tar xzf redis-6.0.8.tar.gz
    $ cd redis-6.0.8
    $ make

2. 启动redis

运行编译后的文件:

    $ src/redis-server

3. 客户端连接

    $ src/redis-cli
    redis> set foo bar
    OK
    redis> get foo
    "bar"

### # 安装Apollo配置中心

说明： apollo是可选组件，如果不使用apollo可使用本地配置文件（application.yml）, 如果不使用apollo可跳过此步骤。

安装步骤详见apollo官方文档:

### # 安装Eureka服务注册中心

环境要求：

- JDK 1.8 或以上版本
- Tomcat 6.0.10 或以上版本 （如使用spring cloud已内置）

1. 安装JDK 1.8

1）下载JDK，如： jdk-8u192-linux-x64.tar.gz

    tar -zxvf jdk-8u192-linux-x64.tar.gz
    mv jdk1.8.0_192 /usr/local/

2）设置JDK环境变量，将下面内容追回到/etc/profile文件后面

    JAVA_HOME=/usr/local/jdk/jdk1.8.0_192
    JRE_HOME=$JAVA_HOME/jre
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
    export JAVA_HOME JRE_HOME PATH CLASSPATH

3）执行以下命令全环境变量生效：

    source /etc/profile

4）查看是否安装成功

    java -version

2. 安装eureka

1）使用IDE创建一个spring boot项目，如：sc-eureka-server

pom.xml:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>

在启动类上添加@EnableEurekaServer注解来启用Euerka注册中心功能:

    @SpringBootApplication
    @EnableEurekaServer
    public class ScEurekaServerApplication {

    	public static void main(String[] args) {
    		SpringApplication.run(ScEurekaServerApplication.class, args);
    	}

    }

application.properties配置文件：

    spring.application.name=sc-eureka-server

    server.port=8761
    eureka.instance.hostname=localhost
    eureka.client.registerWithEureka=false
    eureka.client.fetchRegistry=false
    eureka.server.enableSelfPreservation=false

2） maven构建并运行sc-eureka-server应用, 启动后访问地址http://localhost:8761/可以看到Eureka注册中心的界面

3）把target/sc-eureka-server-1.0.0.jar传到linux服务器上运行. (仅以单机部署为例)

    nohub java -jar sc-eureka-server-1.0.0.jar &

4）eureka客户端的注册地址为：http://localhost:8761/eureka/ (替换localhost为服务器的IP)

    eureka.client.serviceUrl.defaultZone = http://localhost:8761/eureka/

## # 安装Fizz

### # 管理后台

从github的releases(https://github.com/wehotel/fizz-gateway-community/releases)下载 fizz-manager-professional 和 fizz-admin-professional 的安装包

- 管理后台服务端（fizz-manager-professional）

1. 首次安装执行`fizz-manager-professional-1.0.0-mysql.sql`数据库脚本
2. 将`application-prod.yml`、`boot.sh`、`fizz-manager-professional-1.0.0.jar`拷贝到`/data/webapps/fizz-manager-professional`目录下
3. 修改`application-prod.yml`文件，将相关配置修改成部署环境的配置
4. 修改`boot.sh`文件，将`RUN_CMD`变量值修改成部署环境的JAVA实际路径
5. 执行 `chmod +x boot.sh` 命令给`boot.sh`增加执行权限
6. 执行 `./boot.sh start` 命令启动服务，支持 start/stop/restart/status命令
7. 服务启动后访问 http://IP:8000/fizz-manager （将IP替换成服务部署机器IP地址），使用超级管理员账户`admin`密码`Aa123!`登录

- 管理后台前端（fizz-admin-professional）

zip资源包解压后，取文件夹【fizzAdmin】放置于服务器静态数据存放目录 如：/home/data/

nginx配置

    server {
      listen 9000;
      server_name localhost:9000;
      location / {
        root /home/data/fizzAdmin;
      }
      location ^~ /api {
        rewrite ^/api/(.*) /$1 break;
        proxy_pass http://127.0.0.1:8000;
      }
    }

    # 注：root中地址需与资源包存放目录路径一致
    # 注：http://127.0.0.1:8000 为管理后台(fizz-manager-professional)的访问地址

访问地址

【资源部署服务器IP + 端口号】如：http://127.0.0.1:9000/

（端口号与nginx配置端口号一致）

### # fizz-gateway-community社区版

说明：如果使用apollo配置中心，可把application.yml文件内容迁到配置中心（apollo上应用名为：fizz-gateway）；使用不使用apollo可去掉下面启动命令里的apollo参数。

脚本启动:

1. 下载fizz-gateway-community的最新代码，修改application.yml配置文件里eureka、redis的配置，使用maven构建好并把构建好的fizz-gateway-community-1.0.0.jar和boot.sh放同一目录
2. 修改boot.sh脚本的apollo连接，JVM内存配置，
3. 执行 `./boot.sh start` 命令启动服务，支持 start/stop/restart/status命令

IDE启动:

1. 本地clone仓库上的最新代码
2. 将项目fizz-gateway导入IDE
3. 导入完成后设置项目启动配置及修改application.yml配置文件里eureka、redis的配置，在VM选项中加入`-Denv=dev -Dapollo.meta=http://localhost:66`(Apollo配置中心地址)

jar启动:

1. 本地clone仓库上的最新代码，修改application.yml配置文件里eureka、redis的配置
2. 在项目根目录fizz-gateway-community下执行Maven命令`mvn clean package -DskipTests=true`打包
3. 进入target目录，使用命令`java -jar -Denv=DEV -Dapollo.meta=http://localhost:66 fizz-gateway-community-1.0.0.jar`启动服务

网关访问地址格式：

http://127.0.0.1:8600/proxy/[服务名]/[API Path]