gpt4 book ai didi

nginx - 如何代理传递 from/to/index.html

转载 作者:行者123 更新时间:2023-12-02 03:45:08 25 4
gpt4 key购买 nike

我目前正在开发一个使用 url 路径的 JS 项目。现在,如果我使用 example.com/ 访问我的网站,JavaScript 将无法工作,因为我实际上需要 example.com/index。 html

我已经使用反向代理来代理传递到两个不同的 docker 容器。所以我的想法是当 example.com/ 时将请求传递到 example.com/index.html叫。但我无法弄清楚正则表达式的内容来实现这个目标。

我的旧配置:

server {
listen 80;
server_name example.com;

# allow large uploads of files - refer to nginx documentation
client_max_body_size 1G;

# optimize downloading files larger than 1G - refer to nginx doc
before adjusting
#proxy_max_temp_file_size 2G;

location / {
proxy_pass http://structure.example:80;
}

location /cdn {
proxy_pass http://content.example:80;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

}

我尝试过的东西:

    server {
listen 80;
server_name example.com;

# allow large uploads of files - refer to nginx documentation
client_max_body_size 1G;

# optimize downloading files larger than 1G - refer to nginx doc
before adjusting
#proxy_max_temp_file_size 2G;

location / {
proxy_pass http://structure.nocms:80/index.html;
}

location ~* \S+ {
proxy_pass http://structure.nocms:80;
}

location /cdn {
proxy_pass http://content.nocms:80;
}



error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

}

最佳答案

接受的答案有一个缺点:访问 example.com 会显式重定向到 example.com/index.html (即返回 301 Moved permanent ),这并不总是理想的。

相反,我建议在 location/ 前面添加另一个指令 location =/,该指令仅设计用于根 URL:

location = / {
proxy_pass http://structure.nocms:80/index.html;
}

location / {
proxy_pass http://structure.nocms:80;
}

以上内容指示 nginx 将对 example.com 的请求直接传递到 http://struct.nocms:80/index.html,同时请求以下任何其他 URL example.com/* 会将请求传递到下游相应的 URL。

关于nginx - 如何代理传递 from/to/index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46114783/

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