首页 > 数据库 >linux服务器上的nginx服务、mysql服务和docker里面的php服务配合使用

linux服务器上的nginx服务、mysql服务和docker里面的php服务配合使用

时间:2023-09-11 15:34:27浏览次数:40  
标签:服务 配置文件 宿主机 nginx linux docker php

之前有个老项目是nginx1.22.0+mysql5.7+php5.6的环境在跑,也就是常说的lnmp环境。

但是最近出了一个新的需求,这台服务器上要跑一个php7.3的项目,mysql5.7还可以用,nginx1.22.0也可以用,主要是php的环境要升级到7.3,那么方案应该怎么实施呢,大概有下面几个思路:

1、再独立安装一个php7.3的服务,然后在nginx的项目配置文件里面php脚本执行的时候,指向php7.3的服务,老项目依然使用php5.6跑,互不干扰

2、现在比较流行用docker容器来跑服务,如果我装个docker服务,然后再跑个php7.3服务,感觉是不是档次瞬间就上来了。。。

如果是前几年,果断选择方案1,但是目前的话,我选择方案2,用docker来跑。

那么问题来了,如果用docke同时跑php、mysql、nginx三个服务,那简直是一气呵成,如行云流水般,但是现在的情况是,nginx和mysql是运行在宿主机器上,php运行在docker里面,那么这个组合究竟行不行勒,让咱们来试验一下。

docker服务,我只跑了php7.3服务

 nginx是原生的

 mysql也是原生的

 通过试验,得出如下结论:

1、nginx的项目配置文件, 主要注意2个地方,第一个是root目录,遮起来的是我的项目域名,这里就不给大家看了,第二个是引入php配置文件

2、enable-php-docker.conf配置文件,这个是重点

 

fastcgi_pass配置docker里面php服务的地址,ip地址和端口,都可以从docker里面获取到

这里还需要配置一次root目录,并且是指向docker容器内php服务启动时候的目录,否则的话访问php文件会报错:Primary script unknown,报错截图为证

我的宿主机的项目目录为:/data/www,docker容器php服务的目录为:/www

那这里有个疑问?php里面重新配置了root目录,那nginx配置文件里面的root目录,还有用吗?结论是有用的,如果你访问非php文件,那么还是走nginx的root目录的哦,你可以加个txt或者html文件试试就知道了

 fastcgi-docker.conf配置,我也贴一下

 然后再重新加载一下nginx的项目配置文件,测试访问,哇塞,成功了!

 

 到此,nginx + docker(php7.3)就跑通了,然后就是数据库连接的时候,有个地方要注意下,如果你是走公网数据库连接,则不会有这个问题,我这里是走内网连接数据库的模式,所以要注意下。

内网模式下, 我们常用的host地址大多是localhost或者127.0.0.1,但是这里不能这样用 ,这样会链接失败,正确的地址,这里应该用这个:172.16.0.206,输入ifconfig命令,可以看到网卡信息如下:

1、docker0是docker服务的网卡信息,第一个是172.17.0.1,所以php的是172.17.0.2,如果还有别的服务,ip地址会往网面递增172.17.0.(3...)

2、eth0是宿主机的内网网卡地址,172.16.0.206

3、现在是docker服务里面的php要去链接宿主机的myslq服务,相当于跨了网卡,所以直接使用localhost或者127.0.0.1是不行的,这里就要使用宿主机的ip地址了,所以是:172.16.0.206

4、用事实说话,我进入宿主机ping一下宿主机的地址,看是不是通的,结果显然是通的,而且是内网,0.058ms的延迟嘛

 

标签:服务,配置文件,宿主机,nginx,linux,docker,php
From: https://www.cnblogs.com/firstlady/p/17693669.html

相关文章

  • 自建免费的网站监控服务-在huggingface上部署uptime kuma
    前言基于本站构建了各种服务,产生了构建网页集群状态监视系统的需求,包括各种服务器在线状态的监控和网站运行状态等等。于是我想起了以前尝试过的一个项目:uptime-kuma。这个项目很好,从界面的美观度到开放程度都可以满足我的需求,但是由于我手里各种服务器每天折腾各种玩意,没有一台......
  • 来了!“自助式”训练定制的数字人服务
    想拥有一个“数字分身”吗?给你一个终身免费续期的特权。 定制周期长?训练、运营成本高?成片效果生硬?无法应用于实际场景? 随着AIGC技术的快速发展,虚拟数字人的生成效率不断提高,训练成本逐渐降低,与此同时,生成效果也朝着更加精细化方向发展。 越来越多的“数字人”正在走入......
  • Android之Bmob移动后端云服务器
    PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己用servlet作为服务端来实现过滤没有注册过的用户,但是太麻烦,而且不是随时都可以用的。这里介绍一个移动后端云服务器平台bmob,这不仅可以实现云数据库储存,还可以获取手机验证等,随时随地都很轻松,下面写一个小de......
  • Android之Bmob移动后端云服务器
    PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己用servlet作为服务端来实现过滤没有注册过的用户,但是太麻烦,而且不是随时都可以用的。这里介绍一个移动后端云服务器平台bmob,这不仅可以实现云数据库储存,还可以获取手机验证等,随时随地都很轻松,下面写一个小de......
  • 华为云发布CodeArts Inspector漏洞管理服务,守护产品研发安全
    本文分享自华为云社区《华为云发布CodeArtsInspector漏洞管理服务,守护产品研发安全》,作者:华为云头条。2023年9月7日,华为云正式发布CodeArtsInspector漏洞管理服务。这是一款面向软件研发和服务运维提供的一站式漏洞管理能力,通过持续评估系统和应用等资产,内置风险量化管理和在......
  • Linux卸载与安装JDK
    安装一、yum安装JDK1、查看可安装的Java版本yum-ylistjava*2、选择一个自己要安装的版本我安装的是java-11-openjdk.x86_64 sudoyuminstall-yjava-11-openjdk.x86_64最后出现Complete!就是安装完成了3、查看Java版本java-version 4、查看安装的具体位置rpm......
  • 如何选择最佳视频网站服务器?
        但是在为视频网站选择服务器之前,您需要先了解您应该注意什么。租用视频网站服务器与通常将视频上传到第三方的视频网站有很大不同,因此如果需要自建视频网站的话,对于服务器的选择非常重要,下面就来谈谈在选择视频服务器的时候应该如何选择服务器配置视频网站使用场景......
  • 如何选择最佳视频网站服务器?
        但是在为视频网站选择服务器之前,您需要先了解您应该注意什么。租用视频网站服务器与通常将视频上传到第三方的视频网站有很大不同,因此如果需要自建视频网站的话,对于服务器的选择非常重要,下面就来谈谈在选择视频服务器的时候应该如何选择服务器配置视频网站使用场景......
  • Linux中如何比较两个文本文件?
    在Linux中,我们可以使用各种各样的方法及工具来比较两个文本文件,但其中比较实用且常用的方法就是通过命令来进行比较,那么Linux中如何比较两个文本文件?本文为大家详细介绍一下。1、使用diff命令diff命令是Linux中最常用的比较文本文件的命令之一。它会按行比较两个文件,......
  • 将StoreFront服务器重置为出厂默认设置
    在某些情况下,需要将StoreFront安装重置为其初始安装状态。例如,在将StoreFront服务器重新添加到服务器组之前,这是必要的。可以执行手动卸载并重新安装,但这会比较耗时,并且可能会导致其他不可预见的问题。相反,您可以运行Clear-STFDeployment PowerShellcmdlet将StoreFront服......