安装java环境
查询 java安装包
196 yum list java*
安装java8
197 yum install -y java-1.8.0-openjdk.x86_64
检验java8是否安装成功。
198 java -version
2个tomcat准备
另外一个tomcat区别在于:配置文件。conf/server.xml
启动tomcat
[root@localhost bin]# ./startup.sh
测试tomcat
[root@localhost bin]# curl http://localhost:8081/test/index.html
tomcat-8081,81,81
[root@localhost bin]# curl http://localhost:8082/test/index.html
tomcat-8082,82,82
[root@localhost bin]#
nginx安装:
目录:/etc/yum.repos.d/
241 vi nginx.repo
文件内容:
[root@192 yum.repos.d]# cat nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@192 yum.repos.d]#
239 cd /etc/yum.repos.d/
240 ll
安装nginx:
242 yum install nginx
243 nginx -v
244 ps -ef | grep nginx
245 cd /usr/sbin/
246 ll
247 ./nginx
248 ps -ef | grep nginx
测试nginx
249 curl http://localhost
nginx做负载均衡
修改/etc/nginx/nginx.conf
/test/index.html[root@192 nginx]# cat nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
# diy
upstream myServer {
server localhost:8081;
server localhost:8082;
}
server {
listen 80;
server_name myNginx.com;
location /test/ {
proxy_pass http://myServer;
}
}
}
[root@192 nginx]#
重新加载配置文件
启动nginx:/usr/sbin/nginx
[root@192 nginx]# /usr/sbin/nginx -s reload
域名:
myNginx.com
配置linux域名:
配置宿主机域名:
kong负载均衡
先看nginx
# diy
upstream myServer {
server localhost:8081;
server localhost:8082;
}
server {
listen 80;
server_name myNginx.com;
location /test/ {
proxy_pass http://myServer;
}
}
kong:
upstream
查看:http://127.0.0.1:8001/upstreams。
添加:
[root@localhost etc]# curl -X POST http://localhost:8001/upstreams --data "name=myServer"
{"client_certificate":null,"hash_on":"none","id":"933c3aab-85da-4dc1-a34f-2fae01b56b48","hash_on_header":null,"algorithm":"round-robin","hash_on_query_arg":null,"hash_on_uri_capture":null,"healthchecks":{"passive":{"type":"http","healthy":{"http_statuses":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"successes":0},"unhealthy":{"tcp_failures":0,"timeouts":0,"http_failures":0,"http_statuses":[429,500,503]}},"active":{"headers":null,"http_path":"/","https_sni":null,"https_verify_certificate":true,"concurrency":10,"unhealthy":{"tcp_failures":0,"timeouts":0,"http_failures":0,"http_statuses":[429,404,500,501,502,503,504,505],"interval":0},"timeout":1,"type":"http","healthy":{"successes":0,"http_statuses":[200,302],"interval":0}},"threshold":0},"hash_on_cookie":null,"hash_on_cookie_path":"/","hash_fallback":"none","hash_fallback_header":null,"hash_fallback_query_arg":null,"hash_fallback_uri_capture":null,"host_header":null,"tags":null,"created_at":1669830017,"name":"myServer","slots":10000}[root@localhost etc]#
再检查一下,做确认。
Target
查询:http://127.0.0.1:8001/upstreams/myServer/targets
添加:
[root@localhost etc]# curl -X POST http://localhost:8001/upstreams/myServer/targets --data "target=10.0.2.4:8081"
{"upstream":{"id":"933c3aab-85da-4dc1-a34f-2fae01b56b48"},"tags":null,"id":"499d1373-45fc-44b5-b952-1e590f3be680","weight":100,"created_at":1669830273.544,"target":"10.0.2.4:8081"}[root@localhost etc]# curl -X POST http://localhost:8001/upstreams/myServer/targets --data "target=10.0.2.4:8082"
{"upstream":{"id":"933c3aab-85da-4dc1-a34f-2fae01b56b48"},"tags":null,"id":"093cc5cf-ac84-4bb9-b0c7-0289fec7da6a","weight":100,"created_at":1669830307.884,"target":"10.0.2.4:8082"}[root@localhost etc]#
添加完,查看一下。
Service
查看service:http://127.0.0.1:8001/services
添加:
[root@localhost etc]# curl -X POST http://localhost:8001/services --data "name=myService" --data "host=myServer"
{"client_certificate":null,"tls_verify_depth":null,"id":"a5997d4d-c868-43fe-8a73-9db62c5410f8","created_at":1669830610,"updated_at":1669830610,"read_timeout":60000,"protocol":"http","host":"myServer","name":"myService","enabled":true,"retries":5,"port":80,"write_timeout":60000,"tags":null,"ca_certificates":null,"connect_timeout":60000,"tls_verify":null,"path":null}[root@localhost etc]#
查看:http://127.0.0.1:8001/services
Route
查看route:http://127.0.0.1:8001/services/myService/routes
添加:
[root@localhost etc]# curl -X POST http://localhost:8001/services/myService/routes --data "name=myRoute" --data "paths[]=/test"
{"paths":["/test"],"methods":null,"sources":null,"destinations":null,"id":"231fc5ba-a1f1-4d6f-9fcb-eac4e897923d","created_at":1669830883,"updated_at":1669830883,"service":{"id":"a5997d4d-c868-43fe-8a73-9db62c5410f8"},"https_redirect_status_code":426,"regex_priority":0,"protocols":["http","https"],"path_handling":"v0","name":"myRoute","strip_path":true,"snis":null,"hosts":null,"tags":null,"headers":null,"request_buffering":true,"response_buffering":true,"preserve_host":false}[root@localhost etc]#
测试负载均衡:
[root@localhost etc]# curl http://localhost:8000/test/test/index.html
tomcat-8082,82,82
[root@localhost etc]# curl http://localhost:8000/test/test/index.html
tomcat-8081,81,81
[root@localhost etc]# curl http://localhost:8000/test/test/index.html
tomcat-8082,82,82
[root@localhost etc]# curl http://localhost:8000/test/test/index.html
tomcat-8081,81,81
[root@localhost etc]# curl http://localhost:8000/test/test/index.html
tomcat-8082,82,82
[root@localhost etc]# curl http://localhost:8000/test/test/index.html
tomcat-8081,81,81
[root@localhost etc]#
成功。
请求需要两个test的原因。
加了/。 相当于匹配到目标地址的 根路径。
# diy
upstream myServer {
server localhost:8081;
server localhost:8082;
}
server {
listen 80;
server_name myNginx.com;
location /test/ {
proxy_pass http://myServer/;
}
}
总结:
upstream: 对应一组 target节点,实现负载均衡。(还可以指定权重)
target: 对应的具体的服务url。controller。
route: 负责将请求,匹配,映射到 upstream。
service: 将服务节点,指定到一个upstream(具体的服务)。
upstream
----target
service
----route
操作方面:
添加 POST, 修改:PATCH, 删除:DELETE, 查:GET
service:url
创建:
175 curl -X POST http://localhost:8001/services --data name=myTomcat --data url=http://10.0.2.4:8081/test/index.html
查看
176 curl -X GET http://localhost:8001/services
删除
177 curl -X DELETE http://localhost:8001/services/myTomcat
查看
178 curl -X GET http://localhost:8001/services
更新:
180 curl -X PATCH http://localhost:8001/services/myTomcat --data url=http://10.0.2.4:8082/test/index.html
181 curl -X POST http://localhost:8001/services/myTomcat/routes --data name=8082Route --data 'paths[]=/tomcat82'