В настоящее время я занимаюсь докеризацией приложения Laravel и интеграцией его с Kubernetes. Я не очень разбираюсь в php, поэтому я мог упустить что-то очевидное. Мне удалось получить доступ к приложению через http через браузер, который запускает его через docker.
Но по какой-то причине, когда я получаю к нему доступ через мой кластер Kubernetes, независимо от того, если я набираю URL-адрес вручную, он перенаправляет меня на httpsверсия URL. И это приводит к нескольким Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure script '<URL>'
ошибкам.
Я попытался настроить Apache для использования самозаверяющего SSL, но мне не удалось заставить его работать, и кластер действительно работает на http с приложениями Angularв любом случае.
Мои файлы конфигурации Dockerfile, Kubernetes и файлы apache.conf выглядят так:
(обратите внимание, что я убрал значения env для безопасности и краткости)
Dockerfile
FROM php:7.2-apache
ENV APP_ENV=prod
ENV APACHE_DOCUMENT_ROOT /var/www/html
RUN docker-php-ext-install pdo pdo_mysql
RUN a2enmod rewrite
COPY ./apache.conf /etc/apache2/sites-available/000-default.conf
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
WORKDIR /var/www/html/my-app
COPY . .
RUN apt-get update && apt-get install -y git zip unzip
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/bin --filename=composer
RUN /bin/composer install
apache.conf
<VirtualHost *:80>
RewriteEngine On
DocumentRoot ${APACHE_DOCUMENT_ROOT}
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /my-app "/var/www/html/my-app/public"
<Directory "/var/www/html/my-app">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
k8s файлы конфигурации
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: in-check
image: registry-url:5000/my-app
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: my-app-cluster-ip
spec:
type: ClusterIP
selector:
app: my-app
ports:
- port: 8082
targetPort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-app-ingress-service
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- path: /my-app/?(.*)
backend:
serviceName: my-app-cluster-ip
servicePort: 8082
Любая идея, что может быть причиной этой проблемы?
Любая и вся помощь приветствуется.
Обновление: кажется, загружается правильно, используя http на моемКластер EKS, но все равно приводит к вышеприведенным ошибкам на моей копии minikube.
Редактировать: вот ссылка на конфигурацию контроллера Ingress. использование.