gpt4 book ai didi

docker - 托管服务器返回 localhost/web

转载 作者:行者123 更新时间:2023-12-04 07:49:55 29 4
gpt4 key购买 nike

我在 Digital Ocean 的服务器上有一个网站主机,它的行为很奇怪。
该网站是用 Flask 编写的,它部署在 Docker 中,并使用反向代理和 Let's Encrypt 的组合来托管在网络上。
该网站的域名是 mes.th3pl4gu3.com。
如果我继续 mes.th3pl4gu3.com/web/该网站出现并正常工作。
如果我继续 mes.th3pl4gu3.com/web它给了我http://localhost/web/而是在 URl 中,并且连接失败。
但是,当我在本地运行它时,它工作正常。
当我浏览 mes.th3pl4gu3.com/web/ 时,我检查了我的 nginx 日志access_logs 返回成功,但是当我使用 mes.th3pl4gu3.com/web日志中没有任何内容。
有谁知道可能是什么原因造成的?
以下是一些可能有助于故障排除的代码。

server {

server_name mes.th3pl4gu3.com;

location / {
access_log /var/log/nginx/mes/access_mes.log;
error_log /var/log/nginx/mes/error_mes.log;
proxy_pass http://localhost:9003; # The mes_pool nginx vip
}

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/..........
ssl_certificate_key /etc/letsencrypt/........
include /etc/letsencrypt/.........
ssl_dhparam /etc/letsencrypt/......

}

server {
if ($host = mes.th3pl4gu3.com) {
return 301 https://$host$request_uri;
} # managed by Certbot



listen 80;
server_name mes.th3pl4gu3.com;
return 404; # managed by Certbot


}
Docker 实例:
7121492ad994   docker.pkg.github.com/mervin16/mauritius-emergency-services-api/mes:1.2.5     "uwsgi 
app.ini" 4 weeks ago Up 4 weeks 0.0.0.0:9002->5000/tcp mes-instace-2
f4dc063e33b8 docker.pkg.github.com/mervin16/mauritius-emergency-services-api/mes:1.2.5 "uwsgi app.ini" 4 weeks ago Up 4 weeks 0.0.0.0:9001->5000/tcp mes-instace-1
fb269ed2229a nginx "/docker-entrypoint.…" 4 weeks ago Up 4 weeks 0.0.0.0:9003->80/tcp nginx_mes
2ad5afe0afd1 docker.pkg.github.com/mervin16/mauritius-emergency-services-api/mes:1.2.5 "uwsgi app.ini" 4 weeks ago Up 4 weeks 0.0.0.0:9000->5000/tcp mes-backup
docker-compose-instance.yml
version: "3.8"

# Contains all Production instances
# Should always stay up
# In case both instances fails, backup instance will takeover
services:
mes-instace-1:
container_name: mes-instace-1
image: "docker.pkg.github.com/mervin16/mauritius-emergency-services-api/mes:${MES_VERSION}"
networks:
- mes_net
volumes:
- ./data:/app/data
env_file:
- secret.env
ports:
- "9001:5000"
restart: always
environment:
- MES_VERSION=${MES_VERSION}

mes-instace-2:
container_name: mes-instace-2
image: "docker.pkg.github.com/mervin16/mauritius-emergency-services-api/mes:${MES_VERSION}"
networks:
- mes_net
volumes:
- ./data:/app/data
env_file:
- secret.env
ports:
- "9002:5000"
restart: always
environment:
- MES_VERSION=${MES_VERSION}

networks:
mes_net:
name: mes_network
driver: bridge
docker -compose.yml
version: "3.8"

# Contains the backup instance and the nginx server
# This should ALWAYS stay up

services:
mes-backup:
container_name: mes-backup
image: "docker.pkg.github.com/mervin16/mauritius-emergency-services-api/mes:${MES_VERSION}"
networks:
- mes_net
volumes:
- ./data:/app/data
env_file:
- secret.env
ports:
- "9000:5000"
restart: always
environment:
- MES_VERSION=${MES_VERSION}

nginx_mes:
image: nginx
container_name: nginx_mes
ports:
- "9003:80"
networks:
- mes_net
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
- ./log/nginx:/var/log/nginx
depends_on:
- mes-backup
restart: always

networks:
mes_net:
name: mes_network
driver: bridge
我有多个实例用于跨应用程序的负载平衡。
有人可以帮忙吗,或者如果有人知道为什么会发生这种情况?

最佳答案

只要我测试了页面https://mes.th3pl4gu3.com/web有或没有/最后尾随它工作正常。 (Ubuntu 上的 Firefox 版本 87)
也许您的 存在错误/问题网络浏览器 或您正在运行的任何类型的 VPN/代理。确保所有这些都关闭。
加上 Nginx 你可以去掉尾随 /使用 rewrite规则
例如

location = /stream {
rewrite ^/stream /stream/;
}
它告诉 Nginx 解析 stream原样 stream/并且为了确保您不会因为缓存数据而遇到任何问题,请禁用并清除所有缓存。在您的网络浏览器上点击 F12 -> 转到控制台选项卡,点击 F1并在那里禁用缓存。在 Nginx 上为 header 设置“无缓存”,例如
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;

关于docker - 托管服务器返回 localhost/web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67037770/

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