日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)其它知識 → CentOS+nginx+uwsgi+Python 多站點環(huán)境搭建

      CentOS+nginx+uwsgi+Python 多站點環(huán)境搭建

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:Xiongpq時間:2013/10/21 19:15:01字體大小:A-A+

      作者:西西點擊:33次評論:0次標(biāo)簽: CentOS

      • 類型:文件處理大。209KB語言:中文 評分:7.0
      • 標(biāo)簽:
      立即下載

      環(huán)境:

      CentOS X64 6.4

      nginx 1.5.6

      Python 2.7.5

      一:安裝需要的類庫及Python2.7.5

      安裝必要的開發(fā)包

      yum groupinstall "Development tools"
      
      yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

      CentOS 自帶Python2.6.6,但我們可以再安裝Python2.7.5:

      cd ~
      wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
      tar xvf Python-2.7.5.tar.bz2
      cd Python-2.7.5
      ./configure --prefix=/usr/local
      make && make altinstall

      安裝完畢后,可是使用”python2.7”命令進(jìn)入python2.7的環(huán)境。

      二:安裝Python包管理

      easy_install包 https://pypi.python.org/pypi/distribute

      方便安裝Python的開發(fā)包

      cd ~
      wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
      tar xf distribute-0.6.49.tar.gz
      cd distribute-0.6.49
      python2.7 setup.py install
      easy_install --version

      紅色部分必須是“python2.7”,否則將安裝到默認(rèn)的2.6環(huán)境內(nèi)。

      pip包 https://pypi.python.org/pypi/pip

      安裝pip的好處是可以pip list、pip uninstall 管理Python包, easy_install沒有這個功能,只有uninstall

      easy_install pip
      pip --version

      三:安裝uwsgi

      uwsgi:https://pypi.python.org/pypi/uWSGI

      uwsgi參數(shù)詳解:http://uwsgi-docs.readthedocs.org/en/latest/Options.html

      pip install uwsgi
      uwsgi --version

      測試uwsgi是否正常:

      新建test.py文件,內(nèi)容如下:

      def application(env, start_response):
              start_response('200 OK', [('Content-Type','text/html')])
              return "Hello World"

      然后在終端運行:

      uwsgi --http :8001 --wsgi-file test.py

      在瀏覽器內(nèi)輸入:http://127.0.0.1:8001,看是否有“Hello World”輸出,若沒有輸出,請檢查你的安裝過程。

      四:安裝django

      pip install django

      測試django是否正常,運行:

      django-admin.py startproject demosite
      cd demosite
      python2.7 manage.py runserver 0.0.0.0:8002

      在瀏覽器內(nèi)輸入:http://127.0.0.1:8002,檢查django是否運行正常。

      五:安裝nginx

      cd ~
      wget http://nginx.org/download/nginx-1.5.6.tar.gz
      tar xf nginx-1.5.6.tar.gz
      cd nginx-1.5.6
      ./configure --prefix=/usr/local/nginx-1.5.6 \
      --with-http_stub_status_module \
      --with-http_gzip_static_module
      make && make install

      六:配置uwsgi

      uwsgi支持ini、xml等多種配置方式,但個人感覺ini更方便:

      在/ect/目錄下新建uwsgi9090.ini,添加如下配置:

      [uwsgi]
      socket = 127.0.0.1:9090
      master = true         //主進(jìn)程
      vhost = true          //多站模式
      no-stie = true        //多站模式時不設(shè)置入口模塊和文件
      workers = 2           //子進(jìn)程數(shù)
      reload-mercy = 10     
      vacuum = true         //退出、重啟時清理文件
      max-requests = 1000   
      limit-as = 512
      buffer-sizi = 30000
      pidfile = /var/run/uwsgi9090.pid    //pid文件,用于下面的腳本啟動、停止該進(jìn)程
      daemonize = /website/uwsgi9090.log

      設(shè)置uwsgi開機(jī)啟動,在/ect/init.d/目錄下新建uwsgi9090文件,內(nèi)容如下:

      #! /bin/sh
      # chkconfig: 2345 55 25
      # Description: Startup script for uwsgi webserver on Debian. Place in /etc/init.d and
      # run 'update-rc.d -f uwsgi defaults', or use the appropriate command on your
      # distro. For CentOS/Redhat run: 'chkconfig --add uwsgi'
       
      ### BEGIN INIT INFO
      # Provides:          uwsgi
      # Required-Start:    $all
      # Required-Stop:     $all
      # Default-Start:     2 3 4 5
      # Default-Stop:      0 1 6
      # Short-Description: starts the uwsgi web server
      # Description:       starts uwsgi using start-stop-daemon
      ### END INIT INFO
       
      # Author:   licess
      # website:  http://lnmp.org
       
      PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
      DESC="uwsgi daemon"
      NAME=uwsgi9090
      DAEMON=/usr/local/bin/uwsgi
      CONFIGFILE=/etc/$NAME.ini
      PIDFILE=/var/run/$NAME.pid
      SCRIPTNAME=/etc/init.d/$NAME
       
      set -e
      [ -x "$DAEMON" ] || exit 0
       
      do_start() {
          $DAEMON $CONFIGFILE || echo -n "uwsgi already running"
      }
       
      do_stop() {
          $DAEMON --stop $PIDFILE || echo -n "uwsgi not running"
          rm -f $PIDFILE
          echo "$DAEMON STOPED."
      }
       
      do_reload() {
          $DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload"
      }
       
      do_status() {
          ps aux|grep $DAEMON
      }
       
      case "$1" in
       status)
          echo -en "Status $NAME: \n"
          do_status
       ;;
       start)
          echo -en "Starting $NAME: \n"
          do_start
       ;;
       stop)
          echo -en "Stopping $NAME: \n"
          do_stop
       ;;
       reload|graceful)
          echo -en "Reloading $NAME: \n"
          do_reload
       ;;
       *)
          echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2
          exit 3
       ;;
      esac
       
      exit 0

      然后在終端執(zhí)行:

      -- 添加服務(wù)
      chkconfig --add uwsgi9090 
      -- 設(shè)置開機(jī)啟動
      chkconfig uwsgi9090 on

      七:設(shè)置nginx

      找到nginx的安裝目錄,打開conf/nginx.conf文件,修改server配置

      server {
              listen       80;
              server_name  localhost;
              
              location / {            
                  include  uwsgi_params;
                  uwsgi_pass  127.0.0.1:9090;              //必須和uwsgi中的設(shè)置一致
                  uwsgi_param UWSGI_SCRIPT demosite.wsgi;  //入口文件,即wsgi.py相對于項目根目錄的位置,“.”相當(dāng)于一層目錄
                  uwsgi_param UWSGI_CHDIR /demosite;       //項目根目錄
                  index  index.html index.htm;
                  client_max_body_size 35m;
              }
          }

      設(shè)置nginx開機(jī)啟動,在/ect/init.d/目錄下新建nginx文件,內(nèi)容如下:

      #!/bin/sh
      #
      # nginx - this script starts and stops the nginx daemon
      #
      # chkconfig:   - 85 15
      # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
      #               proxy and IMAP/POP3 proxy server
      # processname: nginx
      # config:      /usr/local/nginx/conf/nginx.conf
      # pidfile:     /var/run/nginx.pid
        
      # Source function library.
      . /etc/rc.d/init.d/functions
        
      # Source networking configuration.
      . /etc/sysconfig/network
        
      # Check that networking is up.
      [ "$NETWORKING" = "no" ] && exit 0
        
      nginx="/opt/nginx-1.5.6/sbin/nginx"
      prog=$(basename $nginx)
      
      NGINX_CONF_FILE="/opt/nginx-1.5.6/conf/nginx.conf"
        
      [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
        
      lockfile=/var/lock/subsys/nginx  
       
      start() {
          [ -x $nginx ] || exit 5
          [ -f $NGINX_CONF_FILE ] || exit 6
          echo -n $"Starting $prog: "
          daemon $nginx -c $NGINX_CONF_FILE
          retval=$?
          echo
          [ $retval -eq 0 ] && touch $lockfile
          return $retval
      }
        
      stop() {
          echo -n $"Stopping $prog: "
          killproc $prog -QUIT
          retval=$?
          echo
          [ $retval -eq 0 ] && rm -f $lockfile
          return $retval
      }
        
      restart() {
          configtest || return $?
          stop
          sleep 1
          start
      }
        
      reload() {
          configtest || return $?
          echo -n $"Reloading $prog: "
          killproc $nginx -HUP
          RETVAL=$?
          echo
      }
        
      force_reload() {
          restart
      }
        
      configtest() {
        $nginx -t -c $NGINX_CONF_FILE
      }
        
      rh_status() {
          status $prog
      }
        
      rh_status_q() {
          rh_status >/dev/null 2>&1
      }
        
      case "$1" in
          start)
              rh_status_q && exit 0
              $1
              ;;
          stop)
              rh_status_q || exit 0
              $1
              ;;
          restart|configtest)
              $1
              ;;
          reload)
              rh_status_q || exit 7
              $1
              ;;
          force-reload)
              force_reload
              ;;
          status)
              rh_status
              ;;
          condrestart|try-restart)
              rh_status_q || exit 0
                  ;;
          *)
              echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
              exit 2
      esac

      然后在終端執(zhí)行:

      -- 添加服務(wù)
      chkconfig --add nginx 
      -- 設(shè)置開機(jī)啟動
      chkconfig nginx on

      八:測試

      OK,一切配置完畢,在終端運行

      service uwsgi9090 start
      service nginx start

      在瀏覽器輸入:http://127.0.0.1,恭喜你可以看到django的“It work”了~

      九:其他配置

      防火墻設(shè)置

      CentOS默認(rèn)關(guān)閉外部對80、3306等端口的訪問,所以要在其他計算機(jī)訪問這臺服務(wù)器,就必須修改防火墻配置,打開/etc/sysconfig/iptables

      在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

      -A INPUT m state --state NEW m tcp p dport 80 j ACCEPT
      -A INPUT m state --state NEW m tcp p dport 3306 j ACCEPT

      然后保存,并關(guān)閉該文件,在終端內(nèi)運行下面的命令,刷新防火墻配置:

      service iptables restart

      安裝Mysqldb

      yum -y install mysql-devel
      easy_install-2.7 MySQL-python
      注意紅色部分,easy_install-2.7,否則它將默認(rèn)安裝到Python2.6環(huán)境內(nèi)。

        hosts修復(fù)軟件
        (60)hosts修復(fù)軟件
        文件是計算機(jī)中一個舉足輕重的文件,該文件有一個比較大的特點就是沒有擴(kuò)展名。經(jīng)常在一些電腦個性技巧以及其他領(lǐng)域方面會用到,西西提供文件修復(fù)工具軟件下載大全。官方介紹是一個沒有擴(kuò)展名的系統(tǒng)文件,可以用記事本等工具打開,其作用就是將一些常用的網(wǎng)址域名與其對應(yīng)的地址建立一個關(guān)聯(lián)數(shù)據(jù)庫,當(dāng)用戶在瀏覽器中輸入一個需要登錄的網(wǎng)址時,系統(tǒng)會首先自動從文件中尋找對應(yīng)的地址,一旦找到系統(tǒng)會立即打開對應(yīng)網(wǎng)頁,如果沒有找...更多>>

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)