>백엔드 개발 >PHP 튜토리얼 >호스트의 nginx는 docker 컨테이너의 PHP와 어떤 관련이 있나요?

호스트의 nginx는 docker 컨테이너의 PHP와 어떤 관련이 있나요?

WBOY
WBOY원래의
2016-10-10 11:55:563022검색

내 호스트는 nginx를 배포하고 포트 80에 매핑하기 시작했습니다.
그런 다음 php7-fpm 이미지를 새 컨테이너로 가져와 포트 9000:9000 매핑을 시작했습니다.

호스트의 nginx를 컨테이너의 PHP와 어떻게 연결할 수 있나요? 답변 감사합니다.


10.07
외부 네트워크 IP에 접속하여 docker 컨테이너의 www 루트 디렉터리에 들어갔습니다(기본값은 /var/www/html)
내 호스트 호스트의 nginx 구성은 다음과 같습니다.

<code>        ······· 
        location / {
            root  /var/www/XX;  #宿主机的web应用所在目录
            index index.html index.php;
        }
        ·······
        location ~ \.php$ {
            root /var/www/XX; #宿主机的web应用所在目录
            fastcgi_pass   192.168.42.18:9000; #docker容器php-fpm分配的内网ip和端口
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name; # /var/www/html 是php容器的页面存放目录
            include        /usr/local/nginx/conf/fastcgi_params; #宿主机nginx所在目录
        }
        </code>

외부 네트워크가 /var/www/XX

디렉터리에 액세스하도록 허용하려면 어떻게 해야 하나요?

답글 내용:

내 호스트는 nginx를 배포하고 포트 80에 매핑하기 시작했습니다.
그런 다음 php7-fpm 이미지를 새 컨테이너로 가져와 포트 9000:9000 매핑을 시작했습니다.

호스트의 nginx를 컨테이너의 PHP와 어떻게 연결할 수 있나요? 답변 감사합니다.


10.07
외부 네트워크 IP에 접속하여 docker 컨테이너의 www 루트 디렉터리에 들어갔습니다(기본값은 /var/www/html)
내 호스트 호스트의 nginx 구성은 다음과 같습니다.

<code>        ······· 
        location / {
            root  /var/www/XX;  #宿主机的web应用所在目录
            index index.html index.php;
        }
        ·······
        location ~ \.php$ {
            root /var/www/XX; #宿主机的web应用所在目录
            fastcgi_pass   192.168.42.18:9000; #docker容器php-fpm分配的内网ip和端口
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name; # /var/www/html 是php容器的页面存放目录
            include        /usr/local/nginx/conf/fastcgi_params; #宿主机nginx所在目录
        }
        </code>

외부 네트워크가 /var/www/XX

디렉터리에 액세스하도록 허용하려면 어떻게 해야 하나요?

우선 컨테이너 간 연결은 IP나 -p 매핑 포트를 통하지 않고 --link 매개변수를 사용합니다.
두 번째로, PHP와 함께 Nginx를 사용하는 가장 좋은 방법은 두 컨테이너 모두 동일한 데이터 볼륨(즉, 코드 디렉터리)을 마운트하는 것입니다.

Docker의 기본 사용법을 숙지하는 것이 좋습니다.
https://docs.docker.com/

구성:

<code>fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
</code>

다음으로 변경됨:

<code>fastcgi_param  SCRIPT_FILENAME  /var/www/XX/$fastcgi_script_name;</code>

해 보세요;

nginx에 직접 액세스하여 액세스할 수 있으며, nginx가 요청을 전달합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.