反向代理将 url 重定向到子域

编程入门 行业动态 更新时间:2024-10-22 18:49:32
本文介绍了反向代理将 url 重定向到子域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试将帮助 URL 从 example/help 重写为 help.examplee.我尝试了很多配置 nginx 的方法,但是当我请求 example/help 时,出现了一会儿内容,然后它使用 help.examplee 重定向到主页> 网址.

I am trying to rewrite help URL from example/help to help.examplee. I tried many ways for configuring nginx but When I'm requesting example/help, for a moment content appears and then it redirect to home page with help.examplee url.

我在工作中使用了 nuxtjs v2.13.3 和 nginx.这是我的 nginx 配置:

I used nuxtjs v2.13.3 and nginx in my work. Here is my nginx conf:

  • nuxtjs 服务器块
  • server { listen 80; index index.html; root /var/www/site/dist/; server_name examplee; location / { proxy_pass 127.0.0.1:3000; } # help redirecting... location ~ ^/help/(.*)$ { return 301 $scheme://help.examplee/$1; } }

  • 子域服务器块
  • server { listen 80; server_name help.examplee; location / { proxy_pass 127.0.0.1:3000/help/; } location /_nuxt/ { rewrite /help/(.*) /$1; proxy_pass 127.0.0.1:3000/_nuxt/; } location ~* \.(jpg|jpeg|gif|png|ico)$ { rewrite ^/_nuxt(/.*) $1; root /var/www/site/dist/; expires 30d; } }

    推荐答案

    不确定这是否正是您需要的,但是:

    Not sure if this is doing exactly what you need but:

    example/help/uri1/uri2 上的传入请求将被重定向到 help.example/help/uri1/uri2

    An incomming request on example/help/uri1/uri2 will be redirected to help.example/help/uri1/uri2

    在我们将请求代理到后端之前,我们正在重写 request_uri

    Before we are proxying the request to our backend we are rewriting the request_uri

    rewrite ^/help(.*)$/_nuxt$1 break;

    这里我们将 /help/ 替换为 /_nuxt/.

    Here we are replacing the /help/ with /_nuxt/.

    这是我的测试配置:

    server { listen 80; server_name example; location /help { #return 301 help.example$request_uri; rewrite ^/help(.*)$ /_nuxt$1 break; proxy_pass 127.0.0.1:3000/; } } server { listen 80; server_name help.example location / { rewrite ^/help(.*)$ /_nuxt$1 break; proxy_pass 127.0.0.1:3000/; } } server { #Fake Backend listen 3000; location /_nuxt { add_header "Content-Type" "text/html"; return 200 "$request_uri \n"; } }

    我的实验室要求

    8080 = example 8081 = help.example 8082 = fake bakend (:*3000)

    root@deploy-VirtualBox:/etc/nginx/conf.d#curl -vL 192.168.137.129:8080/help/uri1/uri2; * Trying 192.168.137.129... * TCP_NODELAY set * Connected to 192.168.137.129 (192.168.137.129) port 8080 (#0) > GET /help/uri1/uri2 HTTP/1.1 > Host: 192.168.137.129:8080 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 301 Moved Permanently < Server: nginx/1.19.3 < Date: Wed, 30 Sep 2020 17:12:59 GMT < Content-Type: text/html < Content-Length: 169 < Connection: keep-alive < Location: 192.168.137.129:8081/help/uri1/uri2 < * Ignoring the response-body * Connection #0 to host 192.168.137.129 left intact * Issue another request to this URL: '192.168.137.129:8081/help/uri1/uri2' * Found bundle for host 192.168.137.129: 0x55623c402020 [can pipeline] * Trying 192.168.137.129... * TCP_NODELAY set * Connected to 192.168.137.129 (192.168.137.129) port 8081 (#1) > GET /help/uri1/uri2 HTTP/1.1 > Host: 192.168.137.129:8081 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.19.3 < Date: Wed, 30 Sep 2020 17:12:59 GMT < Content-Type: text/html < Content-Length: 18 < Connection: keep-alive < /_nuxt/uri1/uri2 * Connection #1 to host 192.168.137.129 left intact

    更多推荐

    反向代理将 url 重定向到子域

    本文发布于:2023-10-31 16:25:40,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1546628.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:重定向   url   到子域

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!