server - Nginx配置webapp問題
問題描述
新手自學,nginx在AWS部署。在服務器正常安裝nginx無問題順利打開歡迎頁Welcome to Nginx!
然后創建nginx配置文件,軟連接到/etc/nginx/sites-enabled/,檢查軟鏈正確,通過nginx自帶檢查配置文件命令顯示語法等也顯示正確
server { listen 80; server_name xxxxx;location / {proxy_pass http://localhost:8000; }}
刪除掉/etc/nginx/sites-enabled/里面的default,重啟nginx服務啟動python django的webapp,無報錯,運行在127.0.0.1:8000上
然而最后結果是:“無法連接”。后看過nginx的doc里面的example,看不出問題所在。目前認為問題應該出在配置nginx方面,因為我一旦刪掉我自己的配置文件,恢復default,重啟nginx就能夠恢復到歡迎頁。而webapp多次測試路徑也經過校正不存在問題。請求解決辦法,謝謝!
新的代碼為:
server { listen 80; server_name xxxxx;location / {root ~/sites/source #網站根目錄index index.htmlproxy_pass http://localhost:8000; }}
或把root和index放到location上面,見下圖
運行時端口依然被占:
后proxy_pass改為轉發5000端口,正常運作,但網頁依然無法打開
問題解答
回答1:應該是你沒有指定document_root和index。
回答2:問題解決
因為問題肯定出現在配置上,而apt-get的方法安裝nginx造成無法自定義編譯很難查清楚所在,nginx不支持添加模塊,只能在編譯時進行。故apt-get也沒有日志可看。所以重新下載nginx-1.10.1編譯安裝,編譯包模塊選擇最基本的http模塊方便調試起見再加debug模塊,證實,最后最簡方案為編譯到--prefix=/usr/local下完成安裝,直接修改總的配置文件為(無需uwsgi和root等):
http{ server {listen 80;server_name xxxxx; location / { proxy_pass http://localhost:8000;} }}
另加上默認的events就可以通過最基本的配置文件驗證,其他全部注釋掉,也無需再去刪除默認的配置文件,reload重啟,并順利運行。
相關文章:
1. python bottle跑起來以后,定時執行的任務為什么每次都重復(多)執行一次?2. python - 爬蟲模擬登錄后,爬取csdn后臺文章列表遇到的問題3. html5 - HTML代碼中的文字亂碼是怎么回事?4. 視頻文件不能播放,怎么辦?5. javascript - vue2如何獲取v-model變量名6. javascript - 求幫助 , ATOM不顯示界面!!!!7. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處8. javascript - 為什么在谷歌控制臺 輸出1的時候,輸出的1立馬就不見了9. javascript - angular使從elastichearch中取出的文本高亮顯示,如圖所示10. javascript - ios返回不執行js怎么解決?
