怎麼在網路伺服器部署爬蟲程序
1. 如何在伺服器上部署Django項目並使其在後台一直運行
前幾天老師讓我把一個Django項目(爬蟲網頁)放到校園內網上,但是我想先用自己的伺服器來嘗試一下。之前剛好有在Digital Ocean上買過伺服器用來運行ss腳本,平時伺服器一直放著沒啥用,所以就拿它來試驗一下。
廢話不多說,第一步通過WinSCP軟體把Django文件傳到伺服器上。
在伺服器中安裝Django需要的環境和我所需要的python第三方庫。
以上所有步驟完成後,還需要進行一步操作,這是我經歷的一個 坑 。 打開Django文件目錄中的 settings.py ,把 ALLOWED_HOSTS=[] 改為 ALLOWED_HOSTS=["*"] 。
在伺服器中打開到 manage.py 所在的目錄,輸入命令:
python3 manage.py runserver 0.0.0.0:8000
然後按下回車,在瀏覽器中輸入: 該伺服器IP地址:8000 ,大功告成!
Attention:
1. python3 不是特定的,是根據你的Django項目所需要的環境指定的。
2. 8000 是埠號,可以修改。
如果想要Django項目一直運行,關閉終端後還在運行,即需要運行如下命令, nohup command & , command 即位上文所說的 python3 manage.py runserver 0.0.0.0:8000 。
2. 如何將django項目部署到伺服器(2023年最新解答)
導讀:很多朋友問到關於如何將django項目部署到伺服器的相關問題,本文首席CTO筆記就來為大家做個詳細解答,供大家參考,希望對大家有所幫助!一起來看看吧!
如何在伺服器上部署Django項目並使其在後台一直運行前幾天老師讓我把一個Django項目(爬蟲網頁)放到校園內網上,但是我想先用自己的伺服器來嘗試一下。之前剛好有在DigitalOcean上買過伺服器用來運行ss腳本,平時伺服器一直放著沒啥用,所以就拿它來試驗一下。
廢話不多說,第一步通過WinSCP軟體把Django文件傳到伺服器上。
在伺服器中安裝Django需要的環境和我所需要的Python第三方庫。
以上所有步驟完成後,還需要進行一步操作,這是我經歷的一個坑。打開Django文件目錄中的settings.py,把ALLOWED_HOSTS=[]改為ALLOWED_HOSTS=["*"]。
在伺服器中打開到manage.py所在的目錄,輸入命令:
python3manage.pyrunserver0.0.0.0:8000
然後按下回車,在瀏覽器中輸入:該伺服器IP地址:8000,大功告成!
Attention:
1.python3不是特定的,是根據你的Django項目所需要的環境指定的。
2.8000是埠號,可以修改。
如果想要Django項目一直運行,關閉終端後還在運行,即需要運行如下命令,nohupcommand,command即位上文所說的python3manage.pyrunserver0.0.0.0:8000。
django+vue前後端分離項目部署
後端用的drf,使用的是uwsgi+nginx
進入伺服器項目文件目錄下,我的django項目放在了「/usr/myProjects/」目錄下了。在manage.py同級目錄下創建uwsgi.ini文件,配置如下:
測試效果命令:
如果訪問:xxx.xxx.xxx.xx:8000成功,則uwsgi.ini配置成功
我的nginx.conf所在位置是「/etc/nginx/nginx.conf」
配置文件如下:
1、第一行
主要就是給nginx加許可權,vue部署後使用history路由時會去掉地址後面的『#』號,打包部署後不加許可權會有bug。
2、如配置所示,有兩個Server,分別部署了前端服務,和後端服務,值得注意的是兩個Server用的是同一個伺服器,監聽的埠不同。
3、vue部署需要注意的是反向代理地址:
以及後面的埠問題
4、後端的Server需要注意location中的uwsgi_pass後面的埠號要和uwsgi.ini中配的相同,否則監聽不到
5、後端跨域問題。如果遇到跨域需要自己網上找配置,我的沒遇到,可能是因為我在django的settings中配置了跨域。
6、django-suit後台管理樣式崩了,需要改,但是api可以正常訪問,這個有空再說
7、我開始後台監聽的是8008埠,vue前端監聽的是80埠,這樣前端顯示好看。然而問題出現了,雖然後台api可以正常訪問,vue的本地開發環境也能正常運行且文字、圖片資源均顯示正常,但是前端vue打包線上部署後,文字信息顯示正常,圖片信息缺失8008埠,導致顯示不出來。為圖方便我選擇了前端監聽8008埠,後端監聽80,部署後顯示正常。原因不太清楚///////有空再說吧。
8、不要問我為啥都前後端分離了還部署到一個伺服器上?窮,而且只是測試,沒必要
9、此文僅適合入門
關於django後台admin(suit)缺失的修改(參考:django中文網:)
在環境中進入項目目錄,需要收集css樣式,在終端輸入命令:
接下來你就回發現static文件中包含了css文件,此時再打開網站,樣式顯示正常
uWSGI通過xxx.ini啟動後會在相同目錄下生成一個xxx.pid的文件,裡面只有一行內容是uWSGI的主進程的進程號。
關於uwsgi,進入同屆目錄下
教訓
獲取不到環境,那就指定環境
另外:記得重啟uwsgi,重啟Nginx,實在不行就先把監聽的埠kill掉再重啟
暴力刪埠:fuser-k80/tcp
netstat-aptn命令行,查看所有開啟的埠號
netstat-ntlp|grep80查看具體的埠是否使用
ps-ef|grepuwsgi查看是否有uwsgi埠存在
Django部署——uwsgi+Nginx(超詳細)環境:
python3.6
centos7
Django1.11
用Django寫了個小網站,只能在自己本地跑一跑!這怎麼行?聽說可以部署在雲伺服器上,這樣別人就可以訪問了!
從哪兒開始?就從Django開始吧!老規矩,按步驟:
這里不講Django項目實施過程,假設你已經寫了一個Django項目,並且在本地127.0.0.1:8000能夠跑起來。喏,給你個參考,項目大概長這樣:
也就是項目目錄下的settings.py文件,主要強調幾個地方:
①關閉DEBUG模式:
②修改ALLOWED_HOSTS:
③配置靜態文件存放路徑:
修改好配置之後執行:
這個沒什麼說的。。。在自己的雲伺服器上裝好這兩個工具
安裝好uwsgi後最好驗證一下,驗證方法:
創建一個test.py文件:
啟動uwsgi伺服器:
如果可以正常啟動而不報錯那就應該沒問題,不放心的話再在終端驗證一下:
在uwsgi.ini里進行如下配置:
找到nginx的配置文件夾,centos7的nginx配置文件在/etc/nginx下,該路徑下有一個nginx.conf總配置文件,還有兩個文件夾./conf.d、./default.d,我們將nginx.conf復制一份到conf.d文件夾下,命名為nginx.conf(或者項目名.conf)進行如下修改(根據中文注釋進行相應配置即可):
進入uwsgi.ini文件夾下執行:
在終端執行: