gpt4 book ai didi

php - NGINX使用Slim API框架从子目录重定向到根

转载 作者:行者123 更新时间:2023-12-02 12:00:37 24 4
gpt4 key购买 nike

我想将对子目录v1(subdomain.domain.com/v1)的请求转发到我在Nginx中的根目录。尝试thisthis答案(以及更多变化)没有成功。我使用Slim API框架。
我的nginx配置看起来像这样:

    events {
}
http {
include /etc/nginx/mime.types;
server {
listen 80;
server_name subdomain.domain.com;
root /var/www/html;
index index.php;
try_files $uri $uri/ /index.php?$query_string;
location /healthcheck {
auth_basic off;
allow all;
return 200;
}
location / {
if (!-f $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
}
#location ~ \.php {
# only allow index.php to be proxied to FastCGI process (more secure than all php files!)
location /index.php {
proxy_pass http://127.0.0.1:9000;
}
location location ~ ^/v1/(.*) {
return 301 $scheme://$http_host/$1$is_args$query_string;
}
}
}
我的入口Yaml(Kubernetes)看起来像这样:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-ENVIRONMENT_NAME_SHORT-NAME_OF_DEPLOYMENT
namespace: NAME_OF_NAMESPACE
annotations:
kubernetes.io/ingress.class: gce
kubernetes.io/ingress.global-static-ip-name: ip-ENVIRONMENT_NAME_SHORT-NAME_OF_DEPLOYMENT
networking.gke.io/managed-certificates: cert-ENVIRONMENT_NAME_SHORT-NAME_OF_DEPLOYMENT
kubernetes.io/ingress.allow-http: "false"
spec:
rules:
- host: NAME_OF_DOMAIN
http:
paths:
- path: /v1/*
backend:
serviceName: svc-ENVIRONMENT_NAME_SHORT-NAME_OF_DEPLOYMENT
servicePort: 443
我只能让此东西在没有/ v1的情况下运行(只是subdomain.domain.com)。任何指导表示赞赏。

最佳答案

我认为最好的方法是使重定向发生在入口级别,甚至在到达入口之前。但是,GCE入口尚不支持HTTP to HTTPS重定向,更不用说任何类型的重定向了。
您拥有的方式基本上是这样的:入口获取/v1请求,然后转到Nginx,然后说重定向到/,但该重定向请求又回到入口,这说我不知道​​如何处理/请求。
另一种方法是让后端在/v1上提供服务,或者使用非常普遍的两层方法。 GCE LB(无入口 Controller )➡️Nginx入口(执行重定向并具有更丰富的功能集)➡️后端。

关于php - NGINX使用Slim API框架从子目录重定向到根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62906711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com