Re: [問題] django + nginx + 2 domainname

看板Python作者 (←這人是超級笨蛋)時間6年前 (2018/01/25 16:42), 編輯推噓2(205)
留言7則, 1人參與, 6年前最新討論串2/2 (看更多)
※ 引述《redbxh (LJC)》之銘言: : Djangp Project : - / (Homepage) : - /appa/ (Appa) : - /appb/ (Appb) : www.aaa.com -> / (homepage) : appa.aaa.com -> /appa (Appa) : appb.aaa.com -> /appb (Appb) : server { : ... : server_name domain2 : ... : location / { : rewrite / /app1/ : ... : } : } : 瀏覽器輸入 domain2/ 時確實會連到 /app1 : 但是顯示的url 也跟著改回 domain2/app1/ : 有辦法讓 domain2/ = /app1/ 嗎? 我好像有點搞錯你的需求, 先確認一下 假設你現在有一個完整的網站架在 http://site.localhost, 包含下面這幾頁 http://site.localhost/app1/ http://site.localhost/app1/test/ http://site.localhost/app2/ http://site.localhost/app2/test/ 你現在想把它們變成 http://app1.site.localhost/ http://app1.site.localhost/test/ http://app2.site.localhost/ http://app2.site.localhost/test/ 是這樣嗎? 如果是的話, 可以試試直接把 nginx 直接 proxy 給自己比較快 server { ... # 大致不變 location / { # proxy_pass 到 uwsgi, 不變 } } # 把 app1.site.localhost proxy 到 127.0.0.1/app1 server { server_name app1.site.localhost; location / { proxy_pass http://127.0.0.1/app1$request_uri; } } 這樣當你訪問 http://app1.site.localhost/test/ => 進第二個 virtual server, $request_uri = /test/ => 被 proxy pass 到 http://127.0.0.1/app1/test/ => 進第一個 virtual server, $request_uri = /app1/test/ => 被 proxy pass 到 uwsgi, 後面就跟你本來的程式流程一樣 app2 也是比照辦理 如果你有需要也可以在原本的 virtual server 加幾個 rewrite 把原本 site.localhost/app1/ 的訪問重導向到 app1.site.localhost/ 這個方法的缺點是, Django app 會不知道自己用的網址其實和使用者看到的不一樣 所以如果你需要用一些基於網址的功能, 例如 site framework 就會需要額外設一些 HTTP headers 例如 X-Forwarded 系列 不過這個遇到再去找資料就行了, 資料應該不少 --

08/10 00:59,
void main(void) 的寫法是可行的唷^^
08/10 00:59

08/10 02:16,
雖然這個寫法較傳統,但是語法與文法都正確哦^^
08/10 02:16

08/10 20:18,
目前我使用的 Visual C++ 都接受 void main(void) 與
08/10 20:18

08/10 20:19,
int main(void),各位可以把 C++ 專案改成原生 C++ 類型來
08/10 20:19

08/10 20:21,
用 void main(void) 來寫發現也可通過編譯.
08/10 20:21

08/11 20:23,
這個就是 Visual C++ 的彈性.
08/11 20:23
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.94.62 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1516869737.A.2B8.html

01/25 17:57, 6年前 , 1F
感謝 這方法可行 現在問題出現在點 app1下的link
01/25 17:57, 1F

01/25 17:57, 6年前 , 2F
會變成http://127.0.0.1/app/app/ 這種重複的
01/25 17:57, 2F

01/25 17:57, 6年前 , 3F
修一下path 應該就可以了
01/25 17:57, 3F

01/25 18:08, 6年前 , 4F
應該說直接輸入網址都沒問題 但網頁內點選就會重複app1
01/25 18:08, 4F

01/25 18:15, 6年前 , 5F
我解決了 真的十分感謝你
01/25 18:15, 5F

01/25 18:16, 6年前 , 6F
我用兩個 location 一個 = / 去處理app1 主頁
01/25 18:16, 6F

01/25 18:16, 6年前 , 7F
剩下 / 去處理
01/25 18:16, 7F
文章代碼(AID): #1QQPXfAu (Python)
文章代碼(AID): #1QQPXfAu (Python)