Наследуйте все переменные env, используя Apache - PullRequest
1 голос
/ 01 мая 2019

Я вижу эти документы: https://httpd.apache.org/docs/current/mod/mod_env.html

Я хочу унаследовать / передать все переменные env от хоста в apache, чтобы я мог получить к ним доступ в скриптах CGI.Прямо сейчас cgi-скрипты будут регистрировать env-переменные следующим образом:

#!/usr/bin/env bash
env | sort | while read line; echo "$line <br>"; done

, но когда cgi-скрипт запускает это, он регистрирует только env-переменные, относящиеся к apache / httpd, но не env-переменные, полученные извнешняя среда регистрируется, но почему?

Так что я думаю, что хочу сделать что-то вроде:

PassEnv *

но это только предположение, кто-нибудь знает что-то, что может передать все переменные env?

Если быть точным, мы используем Kubernetes / (AWS EKS), вот наша конфигурация для реплик / контейнеров:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: apache-spike
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: apache-spike
    spec:
      containers:
      - name: apache-spike
        image: 913617820371.dkr.ecr.us-west-2.amazonaws.com/interos_apache:latest
        ports:
        - name: http-port
          containerPort: 8080
          protocol: TCP
        imagePullPolicy: Always
        env:
          - name: DEMO_GREETING
            value: "Hello from the environment"
          - name: DEMO_FAREWELL
            value: "demo farewell env var"

и когда мы опишем один из модулеймы видим:

Containers:
  apache-spike:
    Container ID:   docker://6727d6eafe2a6d229c58875c8cf2c2e9a0cff517dbe67600f965fe19eee000c1
    Image:          9136xxxx0371.dkr.ecr.us-west-2.amazonaws.com/interos_apache:latest
    Image ID:       docker-pullable://9136xxxx0371.dkr.ecr.us-west-2.amazonaws.com/interos_apache@sha256:74f6cab7ef4e1b93123c6e61c7cbdbe5960b736f7e26e075ea5031fb838437be
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Tue, 07 May 2019 17:12:07 -0700
    Ready:          True
    Restart Count:  0
    Environment:
      DEMO_GREETING:  Hello from the environment
      DEMO_FAREWELL:  demo farewell env var
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-jhvnp (ro)

так что переменные окружения есть, по крайней мере.

Когда я запускаю эту команду на модуле:

kubectl exec apache-spike-579598949b-5bjjs -c apache-spike -- sh -c 'id && ps -e'

, я получаю это:

uid=0(root) gid=0(root) groups=0(root)
  PID TTY          TIME CMD
    1 ?        00:00:04 httpd
    7 ?        00:00:00 httpd
    8 ?        00:00:11 httpd
    9 ?        00:00:09 httpd
   10 ?        00:00:09 httpd
   92 ?        00:00:13 httpd
  204 ?        00:00:00 sh
  211 ?        00:00:00 ps
...