Nginx 前后端分离配置

为了解耦前后端,我们将前后端分离,但同时增加了架构的复杂度。本文探讨两种基于 Nginx 的前后端分离配置思路。 背景 假设我们有前后端两个应用,需要 Nginx 做流量转发,前端转发给 frontend, 后端转发给 backend 结构如下图: 方案一 使用同一个域名,应用加前缀 应用加前缀,其实相当于在应用上加了命名空间,这样配置下来如下: 前端:app.mangobeta.com/frontend 后端:app.mangobeta.com/backend 架构如图: 这样做的好处是,前后端不存在跨域问题,配置也比较灵活,一次性工作,比较推荐。 Nginx 配置: 1 2 3 4 5 6 7 location /frontend { proxy_pass http://localhost:8081; } location /backend { proxy_pass http://localhost:8082; } 但有时后端不方便加前缀,使用 Nginx rewrite 重写规则也可以。

Jenkins 以 Docker 方式部署 Springboot

本文主要介绍笔者自己使用 Jenkins 自动化打包 Springboot,并以 Docker 方式部署流程。这里没有用到 K8 等管理工具,规模还没到那一步,以下流程经过实践,对于小规模应用还可以。 架构 实现 Jenkins 共2个任务:构建任务和部署任务。 构建任务是源码到 Jar 包再到 Docker 镜像的过程。 部署任务对远程服务器 Docker 更新的过程。 构建任务 拉取代码 Gradle 打包 本文示例采用 jar 包方式 打 Docker 镜像 将应用 jar 包,复制到 Docker 镜像,基础镜像采用 AdoptOpenJDK 官方镜像。只作为运行环境,建议使用 JRE 镜像。 基于基础镜像也可以改造成自己的,比如:

AdoptOpenJDK 是什么?

JDK 主要有2个分支,Oracle JDK 和 OpenJDK,都是 Oracle 维护的。然鹅, JDK 11 开始收费了,不能用于商业业务目的开发。 条款: 您不能:将程序用于除开发、测试、原型设计和演示应用程序之外的任何数据处理或任何以商业、生产或内部业务为目的的行为; 那么只好使用 OpenJDK 了,但是 OpenJDK 本身是没有 LTS (长期支持)版本的,一般只维护3个月,后面出问题咋办,这就体现出 Oracle JDK 的优势了,JDK 8,11 都是 LTS 版本。 想用更好更稳定的版本,掏钱吧! 当然也可以不掏这个钱,这里介绍的本文的主角:AdoptOpenJDK AdoptOpenJDK 是免费的、完全无品牌的 OpenJDK 版本,基于 GPL 开源协议(+Classpath Extension),以免费软件的形式提供社区版的 OpenJDK 二进制包,公司也可安全且放心使用。与由 Oracle 的 OpenJDK 构建版本不同,这些版本会提供更长的支持,像 Java 11 一样,至少提供 4 年的免费长期支持(LTS)计划。

如何屏蔽内容农场?

什么是内容农场? 来自维基百科定义:内容农场(英语:content farm)是指图谋网络广告等商业利益,以获取网络流量为主要目标,而以各种合法、非法手段大量、快速生产质量不稳定网络文章的网站或企业。 如臭名昭著的每日头条、热备资讯、兰州养生网等。内容多是采集或机翻而来,上网冲浪的你大概率遇到过,Google 一下满屏都是。为了净化搜索结果,还一个清爽的搜索体验。以下介绍2种屏蔽方法。 如何屏蔽这些垃圾站? 自定义搜索引擎 Chrome 添加自定义搜索引擎,网站格式如:https://www.google.com/search?&q=%s+-kknews.cc+-hotbak.net+-lanzhouyangsheng.com 这种方法好处是不需要任何插件,就是需要手动维护。 使用 uBlacklist 插件 uBlacklist 官网:https://iorate.github.io/ublacklist/ 使用 uBlacklist 就方便多了。 Feature: 阻止被屏蔽的站点出现 使用匹配模式和正则表达式灵活地阻止网站 部分支持DuckDuckGo,Ecosia和Startpage.com 使用Google云端硬盘或Dropbox在设备之间同步黑名单 订阅公共黑名单 整个世界都清净了,赶快用起来吧! P.S 本文来自 mangobeta.com。

Snapdrop Docker 快速部署

Snapdrop 介绍 用过苹果的朋友都知道 AirDrop 在同一局域网(或无线网)下传输文件特别方便。但传输到其他设备,如 :Windows 电脑就不好使了,这时可以借助微信,QQ来传,但是同个微信号只能在一台 PC 登录,就很不方便。 Snapdrop 就是为了解决跨设备传文件这个痛点应运而生的。不需要任何配置,只要有网即可。 Snapdrop 官网:https://snapdrop.net/ 自托管 Snapdrop 有些童鞋可能不满足 Snapdrop 所提供的服务,想自己部署一套。幸运的是,Snapdrop 是开源软件,官网已经做好了 Docker 镜像,部署起来也是很 easy. 使用 docker-compose 部署 在使用镜像前,需要先看下 docker-compose.yml 配置文件。如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 version:"3"services:node:image:"node:lts-alpine"user:"node"working_dir:/home/node/appvolumes:- .