E
E
Eugene2016-12-01 18:31:41
PHP
Eugene, 2016-12-01 18:31:41

How to link nginx in host system and php-fpm in docker?


docker run -p 127.0.0.1:9003:9000 .........
There is php- fpm in docker, forwarding to port 9003
I try this, it doesn't work

server {
        server_name site.local;
        listen 80;
        location ~ .php$ { 
            fastcgi_pass  127.0.0.1:9003;
            fastcgi_index index.php;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      /home/docker;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

            fastcgi_param SCRIPT_FILENAME /home/docker$fastcgi_script_name; 
        }
    }

Answer the question

In order to leave comments, you need to log in

2 answer(s)
E
Eugene, 2016-12-01
@Nc_Soft

In the php-fpm config, you need to write
instead
listen = 127.0.0.1:9000

L
lxfr, 2016-12-05
@lxfr

For good reason, nginx should also be a docker container, and not run on the host machine. And in general, all your servers should be described exactly as containers and linked accordingly in order to see each other (for those who need it), then you have a problem how to direct such and such a domain to a certain 53452 port of a certain nginx, but for this there is nginx- proxy open with port 80 outside the host machine.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question