[請益] 使用 Nginx 無法正常顯示頁面

作者: qazsd ( )   2023-11-28 22:25:21
請教版上大大,小弟使用Nginx來轉發兩個web service請求,其設定如下
server {
listen 80;
listen 1000;
server_name 192.168.1.150;
return 301 https://for_test.net$request_uri;
}
server {
listen 2000;
server_name 192.168.1.150;
return 301 https://for_test.net/forms$request_uri;
}
server {
listen 443 ssl;
server_name for_test.net;
ssl_certificate /etc/nginx/ssl/certs/for_test.crt;
ssl_certificate_key /etc/nginx/ssl/private/for_test.key;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers
'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000" always;
### A PyWebIO web service ###
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Photo $scheme;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
}
### A Streamlit web service ###
location /form {
proxy_pass http://127.0.0.1:4000/;
alias /home/streamlit_app/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Photo $scheme;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
已知連線到http://192.168.1.150時會成功轉到 https://for_test.net
但是連線到http://192.168.1.150/form時,則會顯示Connection error
http://192.168.1.150/form對應的是使用Streamlit製作的web service
其錯誤似乎是找不到檔案 (HTTP 404,非HTTP 301)
請問是否有大大能夠指點迷津?
感謝
作者: B0988698088 (廢文少女小円♥)   2023-11-28 23:15:00
自己作業
作者: layer0930 (皇室御漬梨子醬)   2023-11-29 01:45:00
先把網路基本學好…
作者: MoonCode (MoonCode)   2023-11-29 04:51:00
可以問llm
作者: tsaigi (菜雞)   2023-11-29 08:39:00
???
作者: surimodo (好吃棉花糖)   2023-11-29 10:21:00
看無
作者: taitzyhwan (資本主義)   2023-11-29 10:30:00
可以問chatgpt
作者: kurtsgm   2023-11-29 11:31:00
https://i.imgur.com/LCX3cF7.png我問copilot的 不用謝
作者: godddddd (howudoing)   2023-11-29 16:14:00
呃呃 找個可以檢查錯字的
作者: notimenofree (逼逼逼逼逼)   2023-11-30 00:55:00
問GPT
作者: srwhite (魯蛇阿白)   2023-11-30 15:20:00
你打xx.150/form應該會導到for_test.net/form吧看你for_test那有沒有定義form的route或是照你的寫法xx.150:2000可能可以打到 但我是覺得這樣訂有點怪
作者: ssdoz2sk (眷戀著提拉米蘇的風采~)   2023-12-01 00:48:00
1.先檢查到底有沒有轉址,你弄301,不管有沒有存取到資源,網址列應該會更新。2. location /form 改成location /form/ ,不然你 proxy 過去的網址會變成:4000// 這樣 Streamlit 不是會回你 404 就是 403此外,你 port 2000 的 URI 是 form or forms 要確定欸~
作者: anecam (誠意大将軍)   2023-12-01 10:30:00
for_test.net 的A record 是192.168.1.150?
作者: qazsd ( )   2023-12-06 00:20:00
回樓上,是私有網域供連線用的網址,非public IP
作者: anecam (誠意大将軍)   2023-12-08 21:24:00
80 server 改成location ~ /form {return 301 URL; }???後來只細看你是用http連不是https

Links booklink

Contact Us: admin [ a t ] ucptt.com