dorbmd1177 2017-11-09 15:11 采纳率: 100%
浏览 145
已采纳

牧场主sidekick php-fpm端口映射

I'm using rancher with this docker-compose:

version: '2'
volumes:
  data: {}
services:
  web:
    image: nginx:latest
    volumes:
    - /some_local_dir/services.conf:/etc/nginx/conf.d/site.conf
    volumes_from:
    - my-service
    ports:
    - 9082:80
    labels:
      io.rancher.sidekicks: my-service
  my-service:
    image: my-service
    volumes:
    - my-service:/my-service
    ports:
    - 9001:9000

my-service - is image build upon alpine3.6, with installed php7-fpm

My services.conf is:

server {
    root /my-service/web;
    server_name my-service.local;

    location / {
        try_files $uri /app.php$is_args$args;
    }
    location ~ ^/app\.php(/|$) {
        fastcgi_pass my-service.web:9001;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;

        # increase url max size passed to fast CGI interface
        fastcgi_buffer_size 32k;
        fastcgi_buffers 4 32k;
        fastcgi_busy_buffers_size 32k;

        internal;
    }

    error_log  /var/log/nginx/my-service_error.log;
    access_log /var/log/nginx/my-service_access.log;
}

And then I'm getting error :

[error] 10#10: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.42.0.1, upstream: "fastcgi://10.42.94.81:9001"

When I remove port mapping, and left fpm port uncahnged (9000:9000) All starts working

Github helped me to find the reason why php-fpm7 wasn't working in the first place, I've updated /etc/php7/php-fpm.d/www.conf in my-service image, instead of default

listen = 127.0.0.1:9000

I wrote

listen = 9000

It makes things works for 9000:9000, but for 9001:9000 - nope ((

Please help to understand how can I forward fpm to 9001, in my case

  • 写回答

1条回答 默认 最新

  • duankang8114 2017-11-11 11:56
    关注

    Seems I misused configs, following entry for the ranchers sidekick means that my-service:9001 will be open for the all external containers, while 9000 remains for the parent container.

    my-service:
        image: my-service
        volumes:
        - my-service:/my-service
        ports:
        - 9001:9000
    

    So I don't need port mapping at all , if I don't want to expose fpm to external containers.

    If there is a need to work on 9001, only way is to redefine defaults of fpm and start it on 9001, or even a more right way - is to use separate pool for the application.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站