Итак, я играл с kubernetes последние несколько дней и углублялся во все технологии.Но я дошел до того, что не могу превзойти, надеюсь, кто-нибудь сможет мне помочь.
Моя цель: запустить приложение Laravel на Nginx + PHP-fpm в kubernetes (каждый сервис по-своемуpod, чтобы иметь возможность независимо масштабироваться)
Моя текущая проблема: когда я достигаю своей конечной точки, я получаю результат 200
независимо от того, какой код выполняется в фоновом режиме.На данный момент я больше не уверен, что не понимаю, как работает nginx + php-fpm + laravel.
Насколько я понимаю, любой запрос может что-то сделать в этом направлении: Browser-> nginx-> php-fpm-> nginx-> browser.
Поскольку Nginx просто передает запрос и ничего не делает с самим запросом.
Я оставляю соответствующие файлы на случай, если кто-то может мне помочь.
Любая помощь будет более чем приветствоваться
deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-fpm
namespace: dash
labels:
app: php-fpm
spec:
selector:
matchLabels:
app: php-fpm
replicas: 1
template:
metadata:
labels:
app: php-fpm
spec:
containers:
- name: php-fpm
image: azurecr.io/php
ports:
- containerPort: 9000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: dash
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: azurecr.io/nginx
ports:
- containerPort: 80
services.yaml
kind: Service
apiVersion: v1
metadata:
name: php-service
namespace: dash
spec:
selector:
app: php-fpm
ports:
- name: php-fpm-port
protocol: TCP
port: 9000
---
kind: Service
apiVersion: v1
metadata:
name: nginx-service
namespace: dash
spec:
selector:
app: nginx
ports:
- name: "80-nginx"
port: 80
targetPort: 80
- name: "443-nginx"
port: 443
targetPort: 443
nginx.conf
server {
# Set the port to listen on and the server name
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name api.dashboard;
location / {
fastcgi_pass php-service.dash:9000;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param PATH_INFO $fastcgi_path_info;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/log/nginx/laravel_error.log;
access_log /var/log/nginx/laravel_access.log;
}
php-fpm.conf
user = www-data
group = www-data
listen = 0.0.0.0:9000