web專案基礎搭建出現的問題與解決
本專案為nginx+python+django+uwsgi的環境,基礎資訊介紹如下:
系統:ubuntu 14.04
django:1.6.5
python:2.7.3
uwsgi:0.4.5
2015-09-08
01:47:55 [956] [info] worker exiting (pid: 956)
traceback (most recent call last):
file "/usr/bin/gunicorn", line
9, in
load_entry_point('gunicorn==0.14.5', 'console_scripts', 'gunicorn')()
32, in run
124, in run
arbiter(self).run()
file "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line
185, in run
self.halt(reason=inst.reason, exit_status=inst.exit_status)
file "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line
280, in halt
self.stop()
file "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line
328, in stop
self.reap_workers()
file "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line
419, in reap_workers
raise haltserver(reason, self.worker_boot_error)
gunicorn.errors.haltserver: 'worker failed to boot.'
3>
判斷問題思路如下:
1、此日誌資訊無法檢視到詳細錯誤原因;
2、開啟debug級別日誌,檢視詳細錯誤原因;
操作:
1、使用--log-level=debug
引數啟動 gunicorn,可以得到日誌如下:
importerror: no module named qssystem.wsgi
2015-09-08 01:47
:55 [955] [info] worker exiting (pid:
955)
2015-09-08 01:47
:55 [954] [debug] exception
in worker process:
traceback (most recent call last):
file
"/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 459, in spawn_worker
worker.init_process()
file
"/usr/lib/python2.7/dist-packages/gunicorn/workers/ggevent.py", line 98, in init_process
super(geventworker, self).init_process()
file
"/usr/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 99, in init_process
file
self.callable = self.load()
file
file
__import__(module)
importerror:no
module
named
qssystem.wsgi
從以上日誌可以檢視出詳細的錯誤資訊,主要為啟動時匯入qssystem.wsgi模組失敗。
解決方法及思路:
1、python中,每個py檔案被稱之為模組,每個具有init.py檔案的目錄被稱為包。只要模組或者包所在的目錄在sys.path中,就可以使用import 模組或import 包來使用。
2、如果想使用非當前模組中的**,需要使用import,這個大家都知道。
如果你要使用的模組(py檔案)和當前模組在同一目錄,只要import相應的檔名就好,比如在a.py中使用b.py:
import b
import qssystem.wsgi
沒有錯誤資訊,此時即可證明以上問題確實為pythonpath引起,但是此設定在推出python之後此配置將失效,如何使本配置永久生效呢;
4、配置pythonpath永久生效: 在python中建立.pth檔案,在檔案中指定路徑即可;
vim /usr/lib/python2.7/dist-packages/python-support
.pth
編輯檔案,將uwsgi.py的路徑加入到此檔案中,重新啟動wsgi即可;
ps:
使用pth檔案,在 site-packages 檔案中建立 .pth檔案,將模組的路徑寫進去,一行乙個路徑,以下是乙個示例,pth檔案也可以使用注釋:
/usr/lib/pymodules/python2.7
/usr/local/qs-project/web
Too many open files 問題的解決
在 etc security limits.conf檔案中設定最大開啟檔案數 設定如下行 nofile 8192 注意 nofile 項有兩個可能的限制措施。就是項下的hard和soft。要使修改過得最大開啟檔案數生效,必須對這兩種限制進行設定。如果使用 字元設定,則hard和soft設定會同時被設...
最優解問題
最優解問題題型隱晦 變化多端,所以總結此類題目的特徵 解法歸類有助於我們更快的想到這類題目的解題方法 佔坑!後續補充 最優解題目特徵 解題思路1 貪心思想 例題 九度oj題目1434 今年暑假不ac 分析過程 乙個節目提供了三個引數 開始時間 結束時間 持續時間。思考開始最早的元素是不是第乙個最優解...
最優解問題
新龜兔賽跑 要求烏龜到達終點的最優解,無非就是貪心,dp,和bfs,dfs.等等方法了,貪心已經排除了,因為我發現,開始的時候我只是把倒數第乙個站點作為終點去考慮,題目中給的測試資料只有三個,當讓是能過的,但是當站點比這多時,這樣做就行不通了,我們只有把每個站點都作為一次終點去考慮,求烏龜到改點時的...