- 前言:之前在騰訊雲弄了一個學生雲主機和一個域名,後面又學了朋友python,所以就想建一個網站來玩玩。
準備工作:一臺安裝了Ubuntu16.04的雲服務器,一個域名(這裏用buduannuli.cn),假設你的雲主機是剛重裝的,現在連接上那你的雲主機,然後開始。。。 - 配置 ubuntu16.04 python2.7
- 首先在安全組設置開放80端口。
- 安裝pip
sudo apt install python-pip -y
- 安裝django
sudo pip install django==1.9
- 創建 hello world 應用
定位到 /data/helloworldcd /data sudo django-admin startproject helloworld
- 修改配置文件
修改 /data/helloworld/helloworld/settings.py 文件權限爲其它人可寫
編輯 /data/helloworld/helloworld/settings.pysudo chmod 666 /data/helloworld/helloworld/settings.py
將 ALLOWED_HOSTS = [] 修改爲 ALLOWED_HOSTS = ["你的主機ip"] ,這樣可以允許通過 ip 訪問 - 創建簡單的頁面
1、創建文件 /data/helloworld/helloworld/views.py ,並修改權限爲其它人可寫
2、編輯 /data/helloworld/helloworld/views.py添加如下內容:sudo touch /data/helloworld/helloworld/views.py sudo chmod 666 /data/helloworld/helloworld/views.py
3、修改 /data/helloworld/helloworld/urls.py 文件權限爲其它人可寫# -*- coding: utf-8 -*- from django.http.response import HttpResponse def home(request): return HttpResponse('this is test page') def hello(request): user = request.GET.get('user') if not user: user = 'world' return HttpResponse('hello %s this is home page' % user)
4、添加路由配置,編輯 /data/helloworld/helloworld/urls.py 將sudo chmod 666 /data/helloworld/helloworld/urls.py
修改爲urlpatterns = [ url(r'^admin/', admin.site.urls), ]
import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', views.hello), url(r'^home', views.home), ]
- 部署 uwsgi 和 nginx
1、使用 pip 安裝 uwsgi
2、創建文件 /data/helloworld/uwsgi.ini ,並修改權限爲其它人可寫sudo pip install uwsgi
3、編輯 /data/helloworld/uwsgi.ini ,輸入以下內容,並保存sudo touch /data/helloworld/uwsgi.ini sudo chmod 666 /data/helloworld/uwsgi.ini
4、啓動 uwsgi[uwsgi] chdir = /data/helloworld module = helloworld.wsgi socket = 127.0.0.1:8080 master = true vhost = true no-site = true workers = 2 reload-mercy = 10 vacuum = true max-requests = 1000 limit-as = 512 buffer-size = 30000 pidfile = /tmp/uwsgi.pid daemonize = /tmp/uwsgi.log
5、安裝 nginxexport PYTHONPATH=/usr/local/lib/python2.7/dist-packages uwsgi --ini /data/helloworld/uwsgi.ini
6、添加 nginx 配置文件,創建文件 /etc/nginx/sites-enabled/helloworld.conf ,並修改權限爲其它人可寫sudo apt-get install nginx -y
7、編輯 /etc/nginx/sites-enabled/helloworld.conf ,輸入以下內容,並保存sudo touch /etc/nginx/sites-enabled/helloworld.conf sudo chmod 666 /etc/nginx/sites-enabled/helloworld.conf
8、重啓 nginx 服務server { listen 80; server_name buduannuli.cn;//改爲你的域名 charset utf-8; location / { uwsgi_pass 127.0.0.1:8080; include /etc/nginx/uwsgi_params; client_max_body_size 10m; } client_body_timeout 3m; send_timeout 3m; proxy_send_timeout 3m; proxy_read_timeout 3m; }
sudo systemctl restart nginx
- 測試 nginx + uwsgi + django 是否正常工作
在瀏覽器輸入buduannuli.cn和buduannuli.cn/hello就可以看到結果 - 當django的調試模式打開時,理論上可以在瀏覽器上看到更新,但是因爲uwsgi的原因,並不能看到更新,這時候就需要重啓uwsgi,在刷新瀏覽器就可以看到更新:
sudo killall -9 uwsgi sudo --ini /data/helloworld/uwsgi.ini
- 主要文件:views.py:管理邏輯,urls.py:管理域名訪問
在騰訊雲上用 nginx + uwsgi + django 搭建自己的網站
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.