Python 板


LINE

各位大大好,小的只有一個需求, 希望一個放在 AWS 上的 django 網站能走 https。 目前在網路上收集到的方法有兩套: 1. Nginx <--> socket <--> uWSGI <--> Django 2. runsslserver 第一種方法我基本的設定是照 http://goo.gl/ZusnCE 走, 先透過 Nginx 跟 uWSGI 看到 http 的網頁沒問題, 但接著要切到 https 就試不出來了 (哭) 網路上有蠻多教學的,比方說這篇 https://goo.gl/kEh55q 不外乎就是 Nginx 設 port 80 reroute 到 443,  這部份我好像有試出來,在瀏覽器上直接打 IP 連結會轉到 https,  但網站的內容就出不來了... uWSGI 跟 Django 要不要設定則是眾說紛云, 看過一種說法是 Nginx 對外走 https,對 uWSGI 走 http, 所以 uWSGI 跟 Django 都不用做任何設定, 我很喜歡這種做法,但目前還沒找到這種做法 Nginx 的確切設定是什麼... 另一種說法則複雜許多,Nginx 要抽換掉 proxy header: # nginx.conf location / { proxy_pass http://localhost:8000/; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } uWSGI 設定要改成支援 https: # uwsgi.ini env = HTTPS=on Django settings 也要修改: SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True SECURE_SSL_REDIRECT = True 這種我也試了,還是無法,找不到問題所在... orz 第二種方法 https://github.com/teddziuba/django-sslserver  的確實我輕易地獲得了 https 的連線,但這個 github 專案明明白白寫著,  this should not be used for production setups.  This app is intended for special use-cases. Most people should instead do a proper production deplyoment where a real webserver such as Apache or NGINX handles SSL. 搞得我也不敢隨意使用這種作法...  想請問... 有沒有在這方面有經驗的大大能給我一條明路? 附帶一提,其實我真正想要的,是透過 javascript 拿到裝置 gps 的座標, 但 Chrome 的只允許 https 連線可以用這 API... 如果有方法能繞過這個限制,我也都願意嚐試, 當然,能把 https 跑起來還是最好了 QwQ -- 喜歡拍照的正妹們,趕快來找我報到吧!!! https://flic.kr/s/aHsk8JbB2C --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.30.252
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1522486034.A.3FC.html
1F:→ djshen: 內容出不來要不要看一下django有沒有收到request 03/31 17:06
2F:→ djshen: 或有沒有error? 03/31 17:07
3F:→ archon: 謝謝大大,目前用了 uWSGI 後看不到 django 的行為, 03/31 17:08
4F:→ djshen: 之前有用ELB可以直接設定https 單個instance的設定不太熟 03/31 17:08
5F:→ archon: 我研究一下要怎麼看 uWSGI 後面 project 的 log... @@" 03/31 17:08
6F:→ djshen: port有對? 03/31 17:09
這個問題我其實自己也不確定... 在 Nginx <--> socket <--> uWSGI <--> Django 架構下走 http 會通, 所以我自己覺得 uWSGI <--> Django 之間的設定是 ok 的, 但走 https 後,Nginx 把 http request 轉到 port 443, uWSGI 跟 Django 到底需不需要改變設定,這是我還沒弄懂的地方... orz
7F:→ archon: 請問... ELB 可以跑 python 3.x 嗎? 03/31 17:09
8F:→ djshen: ELB是負載平衡跟後面跑什麼沒什麼關係 我問port的原因是 03/31 17:18
ELB 是 AWS Elastic Beanstalk 嗎? 之前我疑似看到 EB 很好設 https,但當我打開 AWS 控制台時, 看到的全是 python 2.7,就縮了... (汗
9F:→ djshen: 第一個教學uWSGI跑在8080 第二個SO他設定8000 03/31 17:19
啊啊,抱歉,這是我問題寫的不清楚了,那段 8000 是我直接 copy 別人文章中的內容, 我自己 Nginx 設定檔的是按照第一個範例下去改成的,內容如下 location / { include uwsgi_params; uwsgi_pass unix:/run/uwsgi/firstsite.sock; # 以下是新增的部份 proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 其實這也是我在網路上找解法遇到一個很大的問題, Django 走 https 的教學,感覺大家的 Nginx 都是先處在某個運作情況下, 修改的部份到底能不能適用第一個範例設定的環境,我心中充滿了無限的問號 orz
10F:推 Sunal: 我用過nginx轉到uwsgi_pass sock file的方式在EC2上 03/31 17:25
11F:推 Sunal: nginx 的conf設定一下關於SSL的部分就好.. 03/31 17:27
12F:→ Sunal: 建議直接看uWSGI的doc 03/31 17:27
14F:→ Sunal: 題外話,不要到處去找解法 直接看官方文件最安全 03/31 17:29
15F:→ Sunal: 輕則是卡在奇怪的地方 重則server被駭也不知道原因 03/31 17:30
謝謝大大的建議~ 之前有翻到這個資源,但可能是我對網路的概念太貧乏了,還是沒能把問題解決 orz http://uwsgi-docs.readthedocs.io/en/latest/HTTPS.html 想請問... 依您的經驗,要走 https,除了 Nginx 之外, uWSGI 跟 Django project 也都需要做相對應的設定的,是嗎?
16F:推 Sunal: BTW 你是有自己買憑證 還是用AWS的SSL方案 03/31 18:18
17F:→ Sunal: 我之前莊是自己有憑證 裝好crt&key 只要設定nginx conf就好 03/31 18:18
呃... 我並沒有設 SSL 憑證, 想說沒憑證只是會跳出這個連線不安全的訊息而已... 會是這個問題嗎... (汗 剛才找了一下,發現 AWS 有 SSL 的服務,感謝大大提供了這個訊息, 我彷彿又看到了一條路... 先去試試看!!
18F:→ djshen: 我記得uWSGI可以設定log 還有nginx的log也看看 03/31 19:14
收到!! 大感謝!!!
19F:推 eric541: Nginx 開 443 ,把 request 導到 uwsgi 的 socket file 04/01 11:57
20F:→ eric541: 就好,Django 那邊全部都不用設,很簡單的 04/01 11:57
21F:→ eric541: 忘記講 nginx 那邊要設一下 443 的 ssl 憑證 04/01 11:58
謝謝大大~ 這樣的意思是說 uWSGI 本身預設就能處理 https 的連線了,對吧? 我再研究一下...
22F:→ djshen: socket就跟https沒關係了吧 04/02 12:28
感謝各位大大的幫助,我終於把 https 給跑起來了!! 老天,我花了快一個禮拜的時間,才發現防火牆 port 443 沒開... 擔誤諸位大大寶貴的時間,真的是非常的抱歉... (跪 QwQ ※ 編輯: archon (125.227.30.252), 04/09/2018 16:36:17







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP