在EC2服务器通过Nginx+Tmux部署多Streamlit子域名应用遇阻
单台EC2服务器上Nginx+Tmux部署多Streamlit应用的问题
阶段1:单个应用部署成功
成功部署单个Streamlit应用时的Nginx配置如下:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { proxy_pass http://localhost:8501; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } }
阶段2:部署两个应用失败
尝试部署两个应用时配置出错,Nginx配置如下:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location /app { proxy_pass http://localhost:8501; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } } location /upload { proxy_pass http://localhost:8502; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } }
浏览器控制台出现以下静态资源404错误:
- GET http://xx.xxx.xx.xxx/static/js/main.4e910df2.js net::ERR_ABORTED 404 (Not Found)
- GET http://xx.xxx.xx.xxx/static/css/main.f4a8738f.css net::ERR_ABORTED 404 (Not Found)
上述文件属于Streamlit的site-packages目录。
阶段3:修复尝试后仍存在新错误
尝试添加root目录并在location后加斜杠修改配置,更新后的Nginx配置如下:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location /app/ { root /home/ubuntu/.local/lib/python3.8/site-packages/streamlit; proxy_pass http://localhost:8501; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } location /upload/ { root /home/ubuntu/.local/lib/python3.8/site-packages/streamlit; proxy_pass http://localhost:8502; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } }
但仍出现新的404错误:
- GET http://xx.xxx.xx.xxx/app/_stcore/health 404 (Not Found)
- GET http://xx.xxx.xx.xxx/app/_stcore/allowed-message-origins 404 (Not Found)
内容的提问来源于stack exchange,提问作者John Jam
相关产品推荐
相关产品推荐

