我正在将nginx docker容器设置为php fpm的反向代理。有可能吗?
我正在开发我的Raspberry pi(arm架构),我正在使用docker在一个非常轻量级的操作系统(HyperiotOS)上运行容器。我已经成功地设置了nginx+php fpm容器,如果卷在两个容器上都装载了代码,那么nginx config将为php文件提供服务 现在我的问题是:我试图将nginx设置为反向代理,这意味着我不希望nginx访问驱动器上的任何代码,我希望将所有请求转发到php容器并显示结果。我试着传递给它,但它不起作用。有办法吗?下面的代码示例 我的码头工人:我正在将nginx docker容器设置为php fpm的反向代理。有可能吗?,php,docker,nginx,arm,Php,Docker,Nginx,Arm,我正在开发我的Raspberry pi(arm架构),我正在使用docker在一个非常轻量级的操作系统(HyperiotOS)上运行容器。我已经成功地设置了nginx+php fpm容器,如果卷在两个容器上都装载了代码,那么nginx config将为php文件提供服务 现在我的问题是:我试图将nginx设置为反向代理,这意味着我不希望nginx访问驱动器上的任何代码,我希望将所有请求转发到php容器并显示结果。我试着传递给它,但它不起作用。有办法吗?下面的代码示例 我的码头工人: versio
version: '3'
services:
nginx:
image: arm32v7/nginx:latest
container_name: nginx
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./conf.d:/etc/nginx/conf.d
- ./logs:/var/log/nginx/
- ./code:/code # this is what I want to get rid off
networks:
- webserver
php:
image: arm32v7/php:7.3-fpm
expose:
- "9000"
restart: unless-stopped
container_name: php-fpm
volumes:
- ./code:/code
networks:
- webserver
networks:
webserver:
driver: bridge
我的nginx配置:
server {
listen 80;
index index.php index.html;
server_name raspberry.local;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code;
location ~ \.php$ {
try_files $uri /dev/null =404;
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;
}
}
现在在/code文件夹中,我有index.php和php信息。
此配置运行良好,在访问raspberry.local:8080后,我可以看到php信息页面
然而,为了访问它,我在nginx容器中安装了/code
- ./code:/code # this is what I want to get rid off
现在我想消除这一点,这样我就可以将nginx作为平衡器放在其他地方,而无需访问代码。我想直接将请求代理到php容器。我试过了,但结果坏了。从代码中“分离”nginx并充当独立代理的最佳方式是什么?如果可能的话,有几个原因可以消除这种情况,一个是生产型构建。我无法共享需要烘焙的文件夹。我不想要两个集装箱装代码。如果是这样的话,我可以在php容器中加入apache,并在其中插入代理nginx,从而消除fpm