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.

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

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能