亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux系統上Nginx+Python的web.py與Django框架環境

系統 1756 0

1.編譯nginx
在網上買了一本《實戰nginx-取代Apache的高性能服務器》,寫的比較淺,主要是些配置方面的東西,不過卻正是目前我所需要的。由于需要支持https和rewrite,所以除了nginx的源碼之外,又下載了 openssl-0.9.8r.tar.gz 和 pcre-8.12.tar.gz,把他們和nginx-1.0.4.tar.gz放到同一個目錄。
為了方便編譯,筆者寫了一個腳本,代碼如下:

            
#!/bin/bash
 
#=============================================================================
#腳本所在絕對目錄
abs_path(){
 local path=$1
 local basename=$( basename $path )
 local dirname=$( dirname $path )
 cd $dirname
 if [ -h $basename ]; then
  path=$( readlink $basename )
  abs_path $path
 else
  pwd
 fi
}
 
#=============================================================================
#依賴的目錄
src_base_dir=$( abs_path $0 )
src_openssl_dir=$src_base_dir'/openssl-0.9.8r'
src_pcre_dir=$src_base_dir'/pcre-8.12'
src_nginx_dir=$src_base_dir'/nginx-1.0.4'
 
#=============================================================================
#目標的目錄
dest_base_dir=$src_base_dir'/release'
dest_nginx_dir=$dest_base_dir'/nginx'
 
#=============================================================================
#把所有的tar.gz解壓
find . -name "*.tar.gz" | xargs -IX tar zxvf X
 
#=============================================================================
#編譯nginx
cd $src_nginx_dir
chmod u+x ./configure
./configure --with-http_stub_status_module --with-http_ssl_module --with-openssl=$src_openssl_dir --with-pcre=$src_pcre_dir --prefix=$dest_nginx_dir
make && make install


          

2.配置nginx
在server配置項下增加

            
location / {
 #這兩種方法都可以,只不過spawn-cgi啟動的方法不同
 #fastcgi_pass 127.0.0.1:9002;
 fastcgi_pass unix:webpy.sock;
 
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param CONTENT_TYPE $content_type;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_param GATEWAY_INTERFACE CGI/1.1;
 fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
 fastcgi_param REMOTE_ADDR $remote_addr;
 fastcgi_param REMOTE_PORT $remote_port;
 fastcgi_param SERVER_ADDR $server_addr;
 fastcgi_param SERVER_PORT $server_port;
 fastcgi_param SERVER_NAME $server_name;
 fastcgi_param SERVER_PROTOCOL $server_protocol;
 fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_script_name;
}

          

這里的3個location配置分別解決了,與python進程通信、django后臺管理端樣式存放、網站樣式存放的問題。對照著apache的配置來看,就很容易明白了

            
WSGIPythonEggs /tmp

            
              
 ServerName fuload.qq.com
 WSGIScriptAlias / /home/dantezhu/htdocs/fuload/conf/setting.wsgi
 
              
              
  Options FollowSymLinks
  AllowOverride
  Order allow,deny 
  Allow from all 
 
 
              
                
  Order Deny,Allow 
  Deny from all 
 
              
              
 Alias /admin_media "/usr/local/lib/python2.7/site-packages/django/contrib/admin/media"
 
              
                
  Order allow,deny 
  Options Indexes
  Allow from all 
  IndexOptions FancyIndexing
 
              
              
 
 #AliasMatch /site_media/(.*\.(css|gif|png|jpg|jpeg)) /home/dantezhu/htdocs/fuload/media/$1 
 Alias /site_media /home/dantezhu/htdocs/fuload/media/
 
              
                
  Order allow,deny 
  Options Indexes
  Allow from all 
  IndexOptions FancyIndexing
 
              
            
          

3.安裝fastcgi依賴
需要到 http://trac.saddi.com/flup下載安裝,之后fastcgi才能夠正常啟動。

4.啟動django
創建django project的過程我們就不說了,只列出啟動/停止的命令:
啟動:

            
#python manage.py runfcgi daemonize=true pidfile=`pwd`/django.pid host=127.0.0.1 port=9001 maxrequests=1 &
python manage.py runfcgi daemonize=true pidfile=`pwd`/django.pid socket=/home/dantezhu/nginx/sbin/django.sock maxrequests=1 &

          

停止:

            
kill -9 `cat django.pid`

          

啟動nginx
啟動:

            
./nginx -p /home/dantezhu/nginx/

          

停止:

            
kill -QUIT `cat ../logs/nginx.pid`

          

重新載入配置:

            
./nginx -t -c `pwd`/../conf/nginx.conf
kill -HUP `cat ../logs/nginx.pid`

          

成功顯示了django的后臺界面:
PPPPPPPPPPPPPPPPPPPPP1

5.部署web.py版
安裝依賴
spawn-cgi
flup
配置nginx
在server配置項下增加

            
location / {
 #這兩種方法都可以,只不過spawn-cgi啟動的方法不同
 #fastcgi_pass 127.0.0.1:9002;
 fastcgi_pass unix:webpy.sock;
 
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param CONTENT_TYPE $content_type;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_param GATEWAY_INTERFACE CGI/1.1;
 fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
 fastcgi_param REMOTE_ADDR $remote_addr;
 fastcgi_param REMOTE_PORT $remote_port;
 fastcgi_param SERVER_ADDR $server_addr;
 fastcgi_param SERVER_PORT $server_port;
 fastcgi_param SERVER_NAME $server_name;
 fastcgi_param SERVER_PROTOCOL $server_protocol;
 fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_script_name;
}

          

一個簡單的index.py

            
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import web 
 
urls = ("/.*", "hello")
app = web.application(urls, globals())
 
class hello:
 def GET(self):
  return 'Hello, world!'
 
if __name__ == "__main__":
 web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
 app.run()

          

并執行:

            
chmod +x index.py

          

.啟動web.py
啟動:

            
#spawn-fcgi -P `pwd`/webpy.pid -f /home/dantezhu/htdocs/ngx_web/index.py -a 127.0.0.1 -p 9002 &
spawn-fcgi -P `pwd`/webpy.pid -f /home/dantezhu/htdocs/ngx_web/index.py -s /home/dantezhu/nginx/sbin/webpy.sock &

          

停止:

            
kill -9 `cat webpy.pid`

          

啟動nginx
加入到rc.local中,自動啟動

            
/home/dantezhu/nginx/sbin/start.sh
sudo -u dantezhu /home/dantezhu/htdocs/ngx_django/mysite/start.sh
sudo -u dantezhu /home/dantezhu/htdocs/ngx_web/start.sh
          


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 毛片视屏 | 亚洲国产成人综合精品2020 | www欧美视频| 日本一区二区三区在线播放 | 啪啪一级片 | 88精品视频 | 日韩亚洲欧美综合一区二区三区 | 国产精品视频免费一区二区三区 | 九九热这里只有 | 亚洲免费在线视频 | 免费看羞羞视频的网站 | 亚洲国产日韩欧美一区二区三区 | 玖玖99视频| 伊人网在线播放 | 亚洲无总热门 | 亚洲 欧美 另类中文字幕 | 中文字幕三级在线不卡 | 免费爱爱小视频 | 91在线视 | 色妞在线 | 亚洲成人18 | 日日综合网| 国产极品嫩模在线观看91精品 | 国产成人影院一区二区 | 亚洲视频在线观看地址 | 国产精品欧美亚洲韩国日本久久 | 成年香蕉大黄美女美女 | 欧美日韩国产一区二区三区播放 | 久久在线视频 | 欧美一二三| 97在线资源站 | 亚洲精品免费日日日夜夜夜夜 | 韩国成人毛片aaa黄 韩国高清不卡一区二区 | 亚洲狠狠色丁香婷婷综合 | 嫩草影院麻豆久久视频 | 天天综合亚洲国产色 | 日韩一级欧美一级毛片在 | 五月婷花| 国产精品亚洲成在人线 | 一区国严二区亚洲三区 | 爱爱视频免费网站 |