# 实现Nginx + PHP的流程和步骤

在使用Kubernetes (K8S) 中实现 Nginx + PHP 的部署主要是通过创建相应的 Deployment 和 Service 来实现的。下面是实现 Nginx + PHP 的具体步骤和代码示例:

### 步骤

| 步骤 | 操作 |
| ------ | ------ |
| 1 | 创建一个 PHP 应用,用于处理请求 |
| 2 | 创建一个 Nginx 应用,用作反向代理服务器 |
| 3 | 创建一个 Service 对象,用于暴露 PHP 应用和 Nginx 应用 |

### 代码示例

#### 步骤 1: 创建一个 PHP 应用 Deployment

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-app
spec:
replicas: 1
selector:
matchLabels:
app: php-app
template:
metadata:
labels:
app: php-app
spec:
containers:
- name: php-container
image: php:7.4
ports:
- containerPort: 9000
```

上面的代码中,我们创建了一个名为 php-app 的 Deployment,使用了 PHP 7.4 镜像,并且容器暴露了 9000 端口用于接收请求。

#### 步骤 2: 创建一个 Nginx 应用 Deployment

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-app
spec:
replicas: 1
selector:
matchLabels:
app: nginx-app
template:
metadata:
labels:
app: nginx-app
spec:
containers:
- name: nginx-container
image: nginx:latest
ports:
- containerPort: 80
```

上面的代码中,我们创建了一个名为 nginx-app 的 Deployment,使用了最新的 Nginx 镜像,并且容器暴露了 80 端口用于接收请求。

#### 步骤 3: 创建一个 Service 对象

```yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-php-service
spec:
selector:
app: php-app
ports:
- protocol: TCP
port: 80
targetPort: 9000
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
```

上面的代码中,我们创建了两个 Service 对象,一个用于暴露 PHP 应用的 9000 端口,另一个用于暴露 Nginx 应用的 80 端口,并且设置了负载均衡器。

通过以上步骤和代码示例,我们成功实现了在 K8S 中部署 Nginx + PHP 应用的流程。希望以上内容对于你理解如何在 K8S 中实现 Nginx + PHP 应用有所帮助!