nginx使用驗(yàn)證栅葡,分別在windows,ubuntu下運(yùn)行
1、windows中安裝虛擬環(huán)境沧踏,建立虛擬環(huán)境歌逢,確保各模塊相互兼容
會(huì)讓使用虛擬環(huán)境更加方便
pip install virtualenv
pip install virtualenvwrapper? # 這是對(duì)virtualenv的封裝版本,一定要在virtualenv后安裝
sudo pip3 install virtualenvwrapper
sudo pip2 install virtualenvwrapper
如果國(guó)外的源太慢了翘狱,可以換成國(guó)內(nèi)的鏡像秘案,只需要加上地址就行
sudo pip2 install -i https://pypi.douban.com/simple virtualenvwrapper
mkvirtualenv -p python2 py2
rmvirtualenv py2#刪除虛擬環(huán)境
activate # 啟動(dòng)虛擬環(huán)境
deactivate # 退出虛擬環(huán)境
然后在虛擬環(huán)境中安裝django
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
直接把django版本降一下pip3 install Django==1.11.4
windows下載nginx (http://nginx.org/en/download.html) (https://blog.csdn.net/kingscoming/article/details/79042874)
解壓后保存在D:\nginx-1.14.2
步驟如下https://blog.csdn.net/kingscoming/article/details/79042874
1.下載Nginx文件包解壓免安裝
(在ubuntu中直接使用sudo apt-get install nginx)
2.Nginx配置
找到 conf 目錄里的 nginx.conf 文件,配置Nginx
2.1.基本配置如下:
我在原來(lái)配置文件中增加了如下
upstream djangos {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
2.2.server配置
然后在server增加
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header myhead 'myhead';
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://djangos;
}
3.啟動(dòng)Nginx
注意不要直接雙擊nginx.exe潦匈,這樣會(huì)導(dǎo)致修改配置后重啟阱高、停止nginx無(wú)效,需要手動(dòng)關(guān)閉任務(wù)管理器內(nèi)的所有nginx進(jìn)程
cmd 進(jìn)入Nginx解壓目錄 執(zhí)行以下命令
start nginx : 啟動(dòng)nginx服務(wù)
nginx -s reload? :修改配置后重新加載生效
nginx -s reopen? :重新打開(kāi)日志文件
nginx -t -c /path/to/nginx.conf 測(cè)試nginx配置文件是否正確
啟動(dòng)后如何檢查是否啟動(dòng)成功呢茬缩? 輸入命令 tasklist /fi "imagename eq nginx.exe"? 看到以下信息說(shuō)明啟動(dòng)成功了
一切就緒赤惊,訪問(wèn)一下server 里配置的 server_name 是不是被重定向到 upstream配置的服務(wù)器上了,是不是很簡(jiǎn)單凰锡!
4.nginx常用命令:
驗(yàn)證配置是否正確: nginx -t
查看Nginx的版本號(hào):nginx -V
啟動(dòng)Nginx:start nginx
快速停止或關(guān)閉Nginx:nginx -s stop
正常停止或關(guān)閉Nginx:nginx -s quit
配置文件修改重裝載命令:nginx -s reload
開(kāi)啟nginx后未舟,然后在開(kāi)jdango:python manage.py runserver 0.0.0.0:8001? python manage.py runserver 0.0.0.0:8002
然后在網(wǎng)頁(yè)中http://192.168.56.1/books/show/ 直接訪問(wèn)成功,而且不需要帶地址掂为,因?yàn)樗鼤?huì)自動(dòng)由nginx轉(zhuǎn)到8001與8002中裕膀,到此成功
5.常見(jiàn)錯(cuò)誤
如果啟動(dòng)失敗 可以看下logs目錄下 error.log 文件里的錯(cuò)誤信息。
我在第一次安裝的時(shí)遇到兩個(gè)錯(cuò)誤勇哗,也是最容易碰到的問(wèn)題昼扛,在這里列出來(lái)方便大家碰到相同的問(wèn)題時(shí)快速解決。
1.端口占用問(wèn)題
我的配置文件里服務(wù)偵聽(tīng)的是 80 端口欲诺,由于機(jī)器上部署了IIS抄谐,80端口被默認(rèn)站點(diǎn)占用,把站點(diǎn)關(guān)閉就可以了瞧栗,這個(gè)問(wèn)題在錯(cuò)誤日志里記錄是這樣的斯稳。
2015/01/15 10:44:12 [emerg] 8800#5988: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)我解決方法,把IIS信息服務(wù)關(guān)閉迹恐,然后重啟即可
碰到類似的錯(cuò)誤挣惰,請(qǐng)確認(rèn)端口是否被占用或被防火墻屏蔽
2019-05-12按照如上方法對(duì)django_test01在python3環(huán)境下運(yùn)行成功
遇到nginx每次啟動(dòng)出現(xiàn)錯(cuò)誤,需要將nginx重裝:
2019-05-12刪除nginx(ubuntu) https://chubuntu.com/questions/51656/nginx-cant-purge-on-ubuntu-16-04.html
編輯:
由于問(wèn)題無(wú)法以這種方式解決且問(wèn)題是由 nginx-core 引起的,您可以嘗試通過(guò)執(zhí)行以下操作手動(dòng)修復(fù)問(wèn)題:
sudo apt -f remove nginx-core
為此: sudo apt -f remove nginx-full
然后從 sudo apt autoremove --purge 憎茂。
開(kāi)始珍语,完成上述步驟? ?
然后重新安裝nginx
sudo apt-get install nginx
sudo service nginx start
service nginx status
在windows中cmd把文件上傳到ubuntu中
D:>pscp -P 22 D:\tangpython\webapp.py ubuntu@139.199.66.32:/home/ubuntu
D:>pscp -P 22 D:\tangpython\wsgi_server.py ubuntu@139.199.66.32:/home/ubuntu
然后在ubuntu中使用python wsgi_server.py,然后瀏覽器中139.199.66.32:8080即可訪問(wèn)成功竖幔,返回hello world(完全與windows一致)