0
点赞
收藏
分享

微信扫一扫

tduck的分离部署

言午栩 2022-06-20 阅读 30

(1)环境规划:

①地址规划:

tduck的分离部署_jar




②业务流量流向图:

tduck的分离部署_nginx_02




③业务部署流程:

1、从前往后部署


2、最后部署存储




④编译机器:负责编译前端代码和后端代码,不参与实际生产

1、编译的前端配置:{这里的地址是写4层slb的地址,因为web上的流量到了以后是要扔在4层slb上}为什么要写slb的公网地地址?代码的疏忽

[root@bd-manager tduck-front]# cat .env.production

# 页面标题;itter不提供技术支持

VUE_APP_TITLE = itter前后端分离部署

# 接口请求地址,会设置到 axios 的 baseURL 参数上

VUE_APP_API_ROOT = http://120.48.41.75:81

# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空

VUE_APP_DEBUG_TOOL =

# 高德地图key

VUE_APP_MAP_KEY = f2200337d0d08538e78729572749882d

# 微信功能开关 开启设置 ON,关闭设置 OFF

VUE_APP_WX = OFF

[root@bd-manager tduck-front]#





(2)前端SLB部署:

①配置说明:

1、用户访问网站,首先会访问slb,slb会将流量分摊到各个web服务器,所以要起一个地址池



2、用户的流量要经过多层负载所以要加各种头部代码



3、slb配置:

[root@bd-slb1 conf.d]# cat tduck.conf

upstream tduck_front_pools {

server 192.168.0.10:80;

}


server {

listen 80;

server_name 120.48.15.242;

location / {

proxy_pass http://tduck_front_pools;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}


}

[root@bd-slb1 conf.d]#





(3)前端web端配置:

①配置说明:

1、负载均衡上的流量到来之后,会将流量区分



2、静态流量nginx就自己处理了,而动态流量就需要传递到后端处理



3、而后端接的设备是后端的负载均衡,所以往后扔的地址要写成后端的slb的地址



3、前端web配置:

[root@bd-web2 conf.d]# cat tduck.conf

server {

listen 80;

server_name 120.48.43.241;


location / {

# 静态文件地址

root /www/web/tduck;

try_files $uri $uri/ /index.html;

index index.html index.htm;

}


location /forget/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://192.168.0.9:81;

}


location /account/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://192.168.0.9:81;

}


location /common/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://192.168.0.9:81;

}


location /user/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://192.168.0.9:81;

}


location /captcha/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://192.168.0.9:81;

}


location /login/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://192.168.0.9:81;

}

location /tduck-api/ {

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 改为你后端接口地址 http://xxxx/tduck-api/

proxy_pass http://192.168.0.9:81/tduck-api/;

}


error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

[root@bd-web2 conf.d]#





(4)后端4层slb的配置:

①说明:

1、为了区分端口,需要将4层流量的端口设置为别的端口,放置其他配置的占用同样的端口



2、4层负载需要将配置写在主配置文件中,而不是子配置文件中



3、后4层slb需要将地址指向后端服务器的地址,后端服务器很多所以需要扔到地址池



4、配置4层负载的时候需要先查询是否支持4层负载

[root@bd-slb2 nginx]# nginx -V |& grep stream



5、4层slb的配置:

[root@bd-slb2 nginx]# cat nginx.conf

user www www;

worker_processes auto;


error_log /var/log/nginx/error.log notice;

pid /var/run/nginx.pid;



events {

worker_connections 1024;

}



stream {

upstream tduck_houduan_pools {

server 192.168.0.12:8999;


}


server {

listen 81;

proxy_pass tduck_houduan_pools;

}


}


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;

}


[root@bd-slb2 nginx]#





(5)部署后端:

①配置jar包和yml:

1、将编译服务器上的文件传递到后端服务器:

[root@bd-manager ~]# rsync -azP application-prod.yml tduck-api.jar root2192.168.0.0.12:/server/tduck



2、配置各种服务的地址:

[root@bd-web4 tduck]# cat application-prod.yml

spring:

datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://192.168.0.5:3306/tduck?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&tinyInt1isBit=false

username: tduck

password: qW!tduck

type: com.zaxxer.hikari.HikariDataSource

hikari:

minimum-idle: 5

maximum-pool-size: 15

auto-commit: true

idle-timeout: 30000

pool-name: DatebookHikariCP

max-lifetime: 1800000

connection-test-query: SELECT 1 FROM DUAL



redis:

database: 0

host: 192.168.0.8

port: 6379

password:



mail:

host: smtp.163.com

username: test@163.com # 邮箱账号

password: DSXFPX24XOBURMDY #邮箱授权码


logging:

level:

com.tduck.cloud: debug

config: classpath:logback-spring.xml


# 请求日志是否打印

platform:

qq:

oauth:

appId:

secret:

oss:

ossType: 3 # 本地存储

endpoint:

accessKeyId:

accessKeySecret:

bucketName:

domain: http://localhost:8999/tduck-api/u/

upload-folder: /data/tduck/upload/

access-path-pattern: /u/** # 文件访问路径前缀 这里更改domain也需要更改



3、创建存储路径:

[root@bd-web4 tduck]# pwd

/server/tduck

[root@bd-web4 tduck]# mkdir -p /data/tduck/upload/

[root@bd-web4 tduck]

[root@bd-web4 tduck]# ll

-rw-r--r-- 1 root root 1954 Jun 9 11:53 application-prod.yml

-rw-r--r-- 1 root root 149999570 Jun 9 11:53 tduck-api.jar

[root@bd-web4 tduck]#



4、启动:{必须尽到存放yml和jar文件的目录才可以启动}

[root@bd-web4 tduck]# java -Dfile.encoding=UTF-8 -jar tduck-api.jar --spring.profiles.active=prod >/dev/null &



5、最后测试:{访问7层lsb的地址即可}

​http://120.48.15.242/​




举报

相关推荐

0 条评论