杜郎俊赏 - dujun.io

开源实例之容器最佳实践

docker-best-practices-for-open-source-examples封面
前言 前文提到,本系列实例采用运行时容器 + 数据容器的部署方式。当项目多样性增加,运行时环境所需应用的排列组合也在增加。考虑到可维护性,决定遵循最佳实践重构,即一个容器只运行一个应用,通过编排完成部署。 本文以 WordPress 为例,示范如何以 Docker 最佳实践部署 LNMP 环境。 容器划分 WordPress 项目需要 4 个容器,即 PHP 容器、MySQL 容器、Nginx 容器和数据容器(WordPress 代码和上传文件存储)。 镜像构建Dockerfile 系统镜像 #Debian 系统镜像,包含 Debian 11.5,基于官方镜像 debian:stable-20221205-slim FROM debian:stable-20221205-slim MAINTAINER dujun ENV LANG zh_CN.UTF-8 ENV LANGUAGE zh_C...

2022-12-13

开源实例之webman

前言 本篇是对《开源实例之多项目部署方案》中 webman 部分的展开。 webman的介绍 webman是一款基于workerman开发的高性能HTTP服务框架。webman用于替代传统的php-fpm架构,提供超高性能可扩展的HTTP服务。你可以用webman开发网站,也可以开发HTTP接口或者微服务。 除此之外,webman还支持自定义进程,可以做workerman能做的任何事情,例如websocket服务、物联网、游戏、TCP服务、UDP服务、unix socket服务等等。 官网地址:https://www.workerman.net/webman webman的理念 以最小内核提供最大的扩展性与最强的性能。 webman仅提供最核心的功能(路由、中间件、session、自定义进程接口)。其余功能全部复用composer生态,这意味着你可以在webman里使用最熟悉的功能组件,例...

2022-12-12

开源实例之Yaf

yaf-example封面
前言 Yaf (Yet Another Framework) 是我最喜欢的 PHP 开发框架。本站基于 Yaf 开发。 git 地址:https://github.com/laruence/yaf pecl 地址:https://pecl.php.net/package/yaf Yaf的介绍 Yaf is a PHP framework similar to zend framework, which is written in c and built as PHP extension. Yaf 是一个C语言编写的、基于PHP扩展开发的,被誉为最快的PHP开发框架。Yaf 的作者是人称“亚一程”(亚洲第一程序员)的鸟哥(惠新宸)。 Yaf的优点 引用鸟哥的原话,Yaf主要有如下优点: * 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. * 所有的框架类, 不需...

2022-12-12

开源实例之Nginx

前言 本篇是对《开源实例之多项目部署方案》中 Nginx 部分的展开。 Nginx的介绍 nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev. Nginx 是轻量级的 HTTP 和反向代理 WEB 服务器。它资源占用少、高并发能力强,在互联网项目中广泛应用。Nginx 也就是常说的 LNMP 架构中的 N。 Nginx的应用 本系列的开源项目实例容器,由 Nginx 协助完成自动重建功能。主要利用的特性是,容器未创建或已停止时,HTTP 状态码返回 502,由此做重建分发。 以 WordPress 项目为例: 分发流程 项目落地页:https://word...

2022-12-09

开源实例之Podman

前言 Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. Containers can either be run as root or in rootless mode. Podman(Pod Manager tool)是 RedHat 推出的,无守护进程、不依赖 root 的容器管理工具,是 Docker 的“无痛”替代品。 官网地址是https://podman.io Podman 的诞生 Podman 的诞生是一种必然,或者说,即便不是 Podman,也必然会出现另一款替代 Docker 的产品。这里面政治斗争或许大于技术因素。 在 Docker 一家独大的时候,Google 的 Kubernetes 是最...

2022-12-06

开源实例之Kubernetes

前言 Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. Kubernetes,发音是[kubə'netis],常被简称为 K8s,即 k + 中间8个字母 + s。这种极客命名,另一个知名例子是多语言软件常见的 i18n(internationalization)。 Kubernetes 源于希腊语,有“舵手”的意思,正如它的 logo 是一个船舵。 官网地址是:https://kubernetes.io Kubernetes的发展 Kubernetes 起源于 Google 内部项目,在 2014 年被正式开源。在 Docker 开始爆火的时期,Kubernetes...

2022-12-05

开源实例之Docker

docker-example封面
前言 Docker 是最知名的开源容器引擎,是将容器技术推广开来的超级应用。官网的 slogon 是 "Develop faster. Run anywhere." 相对于虚拟机,容器最大的优势是极低的开销和超快的部署。这正是我实现这个开源实例系列的技术基础。本篇是对《开源实例之多项目部署方案》中 Docker 部分的展开。 相关镜像构建脚本已经开源,详见《开源实例之本系列镜像开源》。 容器架构方案 Docker 的最佳实践是一个容器只跑一个应用。比如 LNMP 环境可以用三个容器分别跑 PHP、MySQL 和 Nginx。通过 docker-compose 编排组网,管理起来倒也方便。 但在本系列中,这样部署实际很麻烦。像 WordPress 一键安装,默认 PHP 和 MySQL 在同一台机器上,相关配置是 localhost。多个容器组网的映射,就要改相应代码。 最初图方便,我将一个...

2022-12-04

Typecho插件:哀悼日首页灰屏

typecho-plug-mourn-index封面
[附件] 前面写了《WordPress插件:哀悼日首页灰屏》,顺便再写一版 Typecho 的插件。功能是实现仅首页灰屏,而非全站灰屏。压缩包在文末。 主要用到了方法 is('index') 判断当前是首页。 演示地址:https://typecho.dujun.eu.org

2022-12-04

WordPress插件:哀悼日首页灰屏

wordpress-plug-mourn-index封面
[附件] Justin在前面的文章问我 WordPress 怎样实现首页灰屏,而不是全站灰屏。因此写了这个插件,后台上传安装即可。安装包在文末。 主要用到了两个方法: is_home() 判断是一般首页 is_front_page() 判断是用户将单页定义为首页的情况 演示地址:https://wordpress.dujun.eu.org

2022-12-02

开源实例之本系列镜像开源

docker-images-of-open-source-examples封面
前言 前文说到,本系列实例全部改为容器部署。既然本身就是关于开源,那么索性将所有镜像也开源出来,供有需要的朋友参考。主要用到了 Dockfile 构建,以及 docker-compose 编排。 项目地址 https://github.com/dujunio/open-source-examples 目录说明 00000_BASE 目录为基础镜像,其他目录为相应的项目镜像。 构建说明 以构建 WordPress 项目为例,进入目录 10111_WordPress。修改 data/root/start/mysql_init.sql,将 “dujun.space” 相关的域名替换为你自己的域名。然后执行构建和启动。 构建镜像: docker-compose -f build.yml build 启动容器(组): docker-compose up -d 后记 体验更多开源实例

2022-11-30

分页: 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72