IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> windows上使用docker配置 nginx+php-fpm集群 -> 正文阅读

[系统运维]windows上使用docker配置 nginx+php-fpm集群

本文nginx 运行在主机上(不在docker容器中),而php-fpm 配置在docker容器中。

最终效果就是在电脑浏览器中访问 本机的nginx ,只要是php请求都转发到 3个容器中。

而且容器启动带上了环境变量,每个容器的应用都可以获取到属于自己的应用标识。?

1.安装docker 和? 开启3个php-fpm 容器。

windows docker 安装过程就略了。不会的自行百度。

docker 安装好了 ?

先设置 获取 docker镜像服务器地址。

这里可以加速。

设置好了以后? 开一个windows 的cmd 程序 执行指令:

docker pull registry.cn-hangzhou.aliyuncs.com/1221/huangweigang:huang7

这个是我自己制作的镜像 。相对网上通用的php8-fpm的镜像。我的镜像做了如下新增操作。

1.新增了 apt-get update? 指定的更新数据源 从阿里云获取,这样装软件更快

2.装上了vim 工具命令 (拉取的 别人的php8-fpm 容器 是不支持vim 命令的,当然别人是为了让镜像更小

3. php-fpm 的位置文件www.conf? 里面 listen =??unix:/tmp/php-cgi.sock; 改成了listen:127.0.0.7:9000 ,因为不是在容器内调用php-fpm 是在容器外,所以得改。我的容器只做个php解析器。

当然网友也可以不用我的镜像,直接去网上找 php8-fpm的镜像。然后自己设置。

拉取镜像后? 用 命令:

docker images

查看 镜像的id? ,然后用命令 开启3个docker容器?

docker run -d --name php8-1? -p 9011:9000 -v C:/Users/Administrator/Documents/Kitematic/php72/var/www/html1:/mydata -e hid=3 ?e77f01937c11?

docker run -d --name php8-2? -p 9012:9000 -v C:/Users/Administrator/Documents/Kitematic/php72/var/www/html2:/mydata -e hid=3 ?e77f01937c11?

docker run -d --name php8-3? -p 9013:9000 -v C:/Users/Administrator/Documents/Kitematic/php72/var/www/html3:/mydata -e hid=3 ?e77f01937c11?

?启动容器。

这个命令我解释下

参数-d ,--name就不解释了 都知道。

-p 9012:9000 ,9012是 主机端口(本机的nginx 负载均衡访问的就是这个端口),就是windows电脑的端口,等于 docker 容器暴露出来端口,9000 指的是容器内部的端口。

?-v?C:/Users/Administrator/Documents/Kitematic/php72/var/www/html1:/mydata? 表示将本地电脑的??C:/Users/Administrator/Documents/Kitematic/php72/var/www/html1 目录映射到容器里面的目录/mydata ,这样你修改脚本在windows 直接修改即可,不用进入容器内用linux命令操作。方便。

-e hid=3 传入环境变量,等于是应用id ,php 可以通过函数getenv(‘hid’) ,获取。方便应用根据这个应用id 获取属于应用自己的应用配置。

?最后一个??e77f01937c11? 就是镜像id 了 每个人不一样。你拉取的镜像是什么id 就是这个。

2,下载nginx 配置 。 如何下载就省略了。现在主要讲配置。我这里是用phpstudy做的集成环境一部到位。

我在php_study 里面创建了一个网站。www.huangse.com (当然要修改windows 的host文件才能访问)

修改nginx.conf文件?

在 server上面加上

upstream upstream_name{
       server 127.0.0.1:9011;#这个就是docker容器1
       server 127.0.0.1:9012;#这个就是docker容器2
       server 127.0.0.1:9013;#这个就是docker容器3
   }

我开了3个容器。 里面都运行着?php-fpm?

修改 网站的 nginx配置文件,注意红色字体。

server {
        listen        80;
        server_name  www.huangse.com;
        location / {
            index index.php index.html error/index.html;
            error_page 400 /error/400.html;
            error_page 403 /error/403.html;
            error_page 404 /error/404.html;
            error_page 500 /error/500.html;
            error_page 501 /error/501.html;
            error_page 502 /error/502.html;
            error_page 503 /error/503.html;
            error_page 504 /error/504.html;
            error_page 505 /error/505.html;
            error_page 506 /error/506.html;
            error_page 507 /error/507.html;
            error_page 509 /error/509.html;
            error_page 510 /error/510.html;
            autoindex  off;
        }
        location ~ \.php(.*)$ {
        root   "/mydata/";
            #fastcgi_pass   127.0.0.1:9011;
             fastcgi_pass  upstream_name;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  /mydata/$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
      error_log C:/phpstudy_pro/Extensions/Nginx1.15.11/logs/www.huangse.com_error.log crit;
      access_log C:/phpstudy_pro/Extensions/Nginx1.15.11/logs/www.huangse.com_acess.log;
}

然后分别在 路径?C:/Users/Administrator/Documents/Kitematic/php72/var/www/html1,C:/Users/Administrator/Documents/Kitematic/php72/var/www/html2,C:/Users/Administrator/Documents/Kitematic/php72/var/www/html3,里面放入文件a.php,a.php代码就写这个,打印出应用id。

使用浏览器访问。可以看到? 这个数字 从 1 2 3 反复,每次刷新都不一样。?

推荐一个docker 可视化管理软件,Kitematic.

下载后安装到windows ,是个客户端软件。效果如下,可以看到管理的容器数量,还有容器配置的参数,非常方便。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-02 15:13:35  更:2021-10-02 15:14:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:20:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码