docker 集群中 nginx 配置 php 需要注意的地方

最近docker部署集群的时候遇到了一个问题。于是就踩坑了…

src=http---b-ssl

问题复现

那就是php和nginx不在同一个容器,却要通过nginx配置的server_name和listen来访问php项目。

之前在本地集成环境部署的时候没有考虑过这个问题,是因为只要nginx的root根目录和php的root根目录指向同一个目录,这样把项目文件放到这个目录下就可同时访问,也就不存在说是php来访问还是nginx来访问的说法。

但是在集群中也就需要考虑这个问题了。

思路

静态文件需要在 nginx 容器内,php代码放在 php-fpm 的容器内,在nginx的配置里 php 部分设置php-fpm 所在容器内php的路径就可以了。

实现

server {
    listen 80;
    listen [::]:80;
    server_name api.com;

    root /var/www/html/phalapi/api/public;
    set $realdir "";

    location / {
        index index.html index.php index.htm;
        try_files $uri $uri/ $realdir/index.php?$args;
    }
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

src=http---c-ssl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值