| |
|
开发:
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 程序 执行指令:
这个是我自己制作的镜像 。相对网上通用的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的镜像。然后自己设置。 拉取镜像后? 用 命令:
查看 镜像的id? ,然后用命令 开启3个docker容器?
?启动容器。 这个命令我解释下 参数-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 ,是个客户端软件。效果如下,可以看到管理的容器数量,还有容器配置的参数,非常方便。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |