Fizz Gateway 1.1.1版本发布!支持更多方便的后台管理功能特性:(Java 语言中最好的API网关)
1、禁止default网关分组的编辑删除;
2、修改插件配置时同时向网关推送数据;
3、限制插件名称唯一,网关分组、插件名称、增加appID字段长度限制;
4、修复插件管理校验bug,插件表单定义可为空;
5、增加路由管理详情字段必填标记;
6、修复管理后台路由配置的app为空时, 授权插件无法获取此路由配置的问题;
7、默认关闭服务白名单;
安装使用
安装依赖
安装以下依赖软件:
- Redis 2.8或以上版本
- MySQL 5.7或以上版本
- Apollo配置中心 (可选)
- Eureka服务注册中心
安装MySQL
- 操作系统 CentOS 6.5
- MySQL 5.7.30
- 下载MySQL
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar
- 解压
tar -xvf mysql-5.7.30-1.el6.x86_64.rpm-bundle.tar
- 安装
sudo yum install mysql-community-{server,client,common,libs}-*
- 启动
sudo service mysqld start
启动成功会显示以下信息:
[root@localhost ~]# sudo service mysqld start
Initializing MySQL database: [ OK ]
Starting mysqld: [ OK ]
- 初始密码
sudo grep 'temporary password' /var/log/mysqld.log
- 使用初始密码登录
mysql -uroot -p
- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
- 退出登录
quit
安装Redis 6.0.8
- 下载解压并编译
$ 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
- 启动redis
运行编译后的文件:
$ src/redis-server
- 客户端连接
$ 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已内置)
- 安装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
- 安装eureka
1)使用IDE创建一个spring boot项目,如:sc-eureka-server
pom.xml:
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
在启动类上添加@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)
- 首次安装执行
fizz-manager-professional-1.0.0-mysql.sql
数据库脚本 - 将
application-prod.yml
、boot.sh
、fizz-manager-professional-1.0.0.jar
拷贝到/data/webapps/fizz-manager-professional
目录下 - 修改
application-prod.yml
文件,将相关配置修改成部署环境的配置 - 修改
boot.sh
文件,将RUN_CMD
变量值修改成部署环境的JAVA实际路径 - 执行
chmod +x boot.sh
命令给boot.sh
增加执行权限 - 执行
./boot.sh start
命令启动服务,支持 start/stop/restart/status命令 - 服务启动后访问 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参数。
脚本启动:
- 下载fizz-gateway-community的最新代码,修改application.yml配置文件里eureka、redis的配置,使用maven构建好并把构建好的fizz-gateway-community-1.0.0.jar和boot.sh放同一目录
- 修改boot.sh脚本的apollo连接,JVM内存配置,
- 执行
./boot.sh start
命令启动服务,支持 start/stop/restart/status命令
IDE启动:
- 本地clone仓库上的最新代码
- 将项目fizz-gateway导入IDE
- 导入完成后设置项目启动配置及修改application.yml配置文件里eureka、redis的配置,在VM选项中加入
-Denv=dev -Dapollo.meta=http://localhost:66
(Apollo配置中心地址)
jar启动:
- 本地clone仓库上的最新代码,修改application.yml配置文件里eureka、redis的配置
- 在项目根目录fizz-gateway-community下执行Maven命令
mvn clean package -DskipTests=true
打包 - 进入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]