托管服务器返回 localhost/web

如何解决托管服务器返回 localhost/web

我在 Digital Ocean 的服务器上有一个网站主机,它的行为很奇怪。

该网站是用 Flask 编写的,它部署在 Docker 中,并使用反向代理结合 Let's Encrypt 来托管在网络上。

该网站的域名是 mes.th3pl4gu3.com。

如果我继续 mes.th3pl4gu3.com/web/,网站会出现并正常运行。

如果我继续 mes.th3pl4gu3.com/web,它会在 URl 中给我 http://localhost/web/ 并且连接失败。

但是,当我在本地运行它时,它工作正常。

我检查了我的 nginx 日志,当我浏览 mes.th3pl4gu3.com/web/ 时,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 上为标头设置“无缓存”,例如

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;
,

我使用 Chrome、Safari 和 Curl 测试了您的网站,但没有发现该问题。

尝试清除缓存。

方法一:Ctrl-Shift-R

方法二:DevTool -> 应用/存储 -> 清除站点数据

,

我猜这与你的 Flask SERVER_NAME

如您所说,本地您的 SERVER_NAME 可能设置为 localhost:8000。

但是,在生产中,它需要类似于

SERVER_NAME = "th3pl4gu3.com"

您的问题是您正在从 Flask SERVER_NAME 变量中提取 SERVER_NAME,因此它最终为 https://localhost/web 而不是您想要的 URL。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res