常用的nginx配置信息模板、docker模板、k8s部署deploy模板、springboot基本application文件

5 篇文章 0 订阅
2 篇文章 0 订阅

周五请假,周六日休息,所以没有更新,今天把印象上边这2年的各种模板和快捷部署命令付一下,既是模板就还是需要根据自己的环境做改变的,不可直接CV。

一、nginx反向正向代理模板 (简单)。

server {
        listen 80;
        listen [::]:80;

        server_name xxx.com;  # 你的域名

        root /home/ubuntu/djc-model/dist; # 指向文件夹{目录}
        
        index index.html;   # 索引的文件 根文件
        
        location / { 
                try_files $uri $uri/ /index.html;
        }
        
        underscores_in_headers on;  # 开启自定义请求头,方便下方 proxy_set_header
        
     location /api {
        proxy_set_header tenant_key $http_tenant_key;  # 自定义请求头
        proxy_set_header Authorization $http_Authorization; # 自定义请求头
        proxy_pass http://0.0.0.0:8301;  # 反向代理的地址
        rewrite ^.+api/?(.*)$ /$1 break; # url 重写 可以看此文章 https://cloud.tencent.com/developer/article/1918481
     }

}

二、nginx反向代理模板 (复杂)。

server {
    listen 80;
    server_name localhost;

    gzip on;
    gzip_static on;     # 需要http_gzip_static_module 模块
    gzip_min_length 1k;
    gzip_comp_level 4;
    gzip_proxied any;
    gzip_types text/plain text/xml text/css;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    # 前端打包好的dist目录文件
    root /data/;

   
    location /api {
      proxy_pass http://0.0.0.0:31790; 
      proxy_buffer_size 1024k;
      proxy_buffers 16 1024k;
      proxy_busy_buffers_size 2048k;
      proxy_temp_file_write_size 2048k;
      proxy_send_timeout 1200s;
      proxy_read_timeout 1200s;
      proxy_connect_timeout 1200s;
      send_timeout 1200s;
      client_max_body_size 512m;
      rewrite ^.+api/?(.*)$ /$1 break;
    }
    location /oauth {
      proxy_buffer_size 1024k;
      proxy_buffers 16 1024k;
      proxy_busy_buffers_size 2048k;
      proxy_temp_file_write_size 2048k;
      proxy_send_timeout 1200s;
      proxy_read_timeout 1200s;
      proxy_connect_timeout 1200s;
      send_timeout 1200s;
      proxy_pass https://xxx.net/;
      client_max_body_size 100m;
      rewrite ^.+oauth/?(.*)$ /$1 break;
    }
    location /flag {
      default_type text/html;
      return 200 "true";
    }
}

三、k8s-Deployment部署文件,service-node-port文件。

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s.kuboard.cn/name: web-xa-sports-h5-test   # 元属性名
  name: web-xa-sports-h5-test
  namespace: test  # k8s 命名空间
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/name: web-xa-sports-h5-test
  template:
    metadata:
      labels:
        k8s.kuboard.cn/name: web-xa-sports-h5-test
    spec:
      containers:
        - image: ${TAG}  # 从容器镜像获取的动态镜像标签,可以写死镜像名。
          #          imagePullPolicy: Always
          name: web-xa-sports-h5-test  # pod名
          ports:
            - containerPort: 80 # 容器端口
              protocol: TCP
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
---
apiVersion: v1
kind: Service
metadata:
  labels:
    k8s.kuboard.cn/name: web-xa-sports-h5-server-test # 绑定的pod名称
  name: web-xa-sports-h5-server-test
  namespace: test # 命名空间
spec:
  ports:
    - name: 'xah5h5'
      protocol: TCP
      nodePort: 30111
      port: 80
      targetPort: 80
  selector:
    k8s.kuboard.cn/name: web-xa-sports-h5-test
  type: NodePort

四、docker部署文件(前端)

FROM node:12.18.4-alpine3.11 as builder

WORKDIR /app

COPY ./ /app

RUN npm i --registry https://registry.npm.taobao.org

RUN npm run build

FROM nginx

WORKDIR /data

COPY --from=builder /app/dist /data

COPY --from=builder /app/*.txt /data

RUN rm /etc/nginx/conf.d/default.conf

ADD sports-h5.conf /etc/nginx/conf.d/default.conf

RUN /bin/bash -c 'echo init ok'

五、docker部署文件(后端 - gradle构建)

FROM registry.cn-beijing.aliyuncs.com/fem/fem-gradle:6.7-jdk8 as builder

WORKDIR /app

COPY ./src ./src
COPY build.gradle .
COPY settings.gradle .

RUN gradle clean 
RUN gradle build -x test

FROM openjdk:8 as layer-tools

WORKDIR /app

COPY --from=builder /app/build/libs/sports-butler-*.jar ./app.jar

RUN jar -xf ./app.jar
RUN ls

FROM openjdk:8

ARG DEPENDENCY=/app

# 将工作路径的文件 复制到容器中
COPY --from=layer-tools ${DEPENDENCY}/BOOT-INF/lib /application/lib
COPY --from=layer-tools ${DEPENDENCY}/META-INF /application/META-INF
COPY --from=layer-tools ${DEPENDENCY}/BOOT-INF/classes /application
COPY --from=layer-tools ${DEPENDENCY}/org /application/org

ENV TZ=Asia/Shanghai

ENTRYPOINT ["java","-cp","application:application/lib/*","-Dserver.port=${PORT:8892}","com.fem.sportsbutler.SportsButlerApplication"]

六、docker部署文件(后端 - 交由流水线maven构建)

FROM openjdk:8

ENV TZ=Asia/Shanghai

ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"

RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN mkdir -p /Data_Kanban_Tianjin

WORKDIR /Data_Kanban_Tianjin

EXPOSE 9898

ADD ./target/data-*.jar ./app.jar

CMD java $JAVA_OPTS -jar app.jar --spring.profiles.active=prod

七、springboot - application文件

server:
  port: 8892
  tomcat:
    connection-timeout: 25000
    threads:
      min-spare: 10
      max: 400
    max-connections: 1000
    accept-count: 500
  shutdown: graceful

spring:
  datasource:
    username: xxxx
    password: ${MYSQL_PWD:xxxx}
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${MYSQL_URL:0.0.0.0}:3306/xa-xxx?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8&rewriteBatchedStatements=true
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 5
      min-idle: 5
      max-active: 20
      max-wait: 600000
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      time-between-eviction-runs-millis: 60000
    dbcp2:
      test-on-borrow: true
  jackson:
    serialization:
      WRITE_DURATIONS_AS_TIMESTAMPS: true
    default-property-inclusion: non_null
  servlet:
    multipart:
      max-request-size: 100MB
      max-file-size: 100MB
  redis:
    host: ${REDIS_URL:xxxx}
    port: 6379
    database: 5
    password: ${REDIS_PWD:xxxxx}
    timeout: 50000
    jedis:
      pool:
        max-active: 10
        min-idle: 0
        max-wait: 50000
        max-idle: 10
  cache:
    type: redis
  main:
    allow-bean-definition-overriding: true

mybatis-plus:
  mapper-locations: classpath:mapper/*.xml
  global-config:
    banner: false
    db-config:
      id-type: id_worker_str
      logic-delete-field: deleted
      logic-delete-value: 1
      logic-not-delete-value: 0
  configuration:
    call-setters-on-nulls: true
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

logging:
  level:
    com.fem.sportsbutler:
      mapper: debug
      mapper.repo: debug

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值