nginxpython配置
⑴ nginx如何配置支持python
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-===========================-===========================-====================================================================== ii python-flup 0.2126-1 Implements Python Web Server Gateway Interface (WSGI) $:apt-get install python-flup 3:配置nginx.conf.這個是按照網上配置的. server { listen 1235; server_name localhost; #charset koi8-r; #access_log /dev/null; access_log /usr/local/nginx/logs/access.log; location / { #location /htm { # root /home/utest/ms;#}root /home/utest/ms;
⑵ django配nginx,用哪種介面部署比較好
1、安裝uwsgi、flup、django
2、項目創建和配置
2.1、創建項目
cd /root/codes/
django-admin.py startproject myproject
2.2、創建/root/codes/uwsgi.xml
<uwsgi>
<socket>0.0.0.0:8001</socket>
<pythonpath>/root/codes/myproject</pythonpath>
<mole>django_wsgi</mole>
<profiler>true</profiler>
<memory-report>true</memory-report>
<enable-threads>true</enable-threads>
<logdate>true</logdate>
<limit-as>6048</limit-as>
</uwsgi>
2.3、創建/root/codes/django_wsgi
import os
import django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' #"項目名.settings"
application = django.core.handlers.wsgi.WSGIHandler()
2.5、nginx 配置
可以直接修改/etc/nginx/nginx.conf或者在conf.d中添加一個conf後綴的文件,配置如下:
location ~ /zhaoshihui {
#include uwsgi_params;
#uwsgi_pass 127.0.0.1:8001;
fastcgi_pass 127.0.0.1:8001;
root /root/codes/zhaoshihui/;
}
⑶ nginx python配置好後,首頁放置在哪裡
1.安裝nginx安裝過nginx這就不好從新演示了.默認你也安裝好了nginx.2.安裝flup$:dpkg -l *flup*列印信息:Desired=Unknown/Install/Remove/Purge/Hold| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed|/
⑷ nginx能否不藉助wsgi直接部署Python應用
多開一個埠有什麼問題?127.0.0.1:xxx 埠並不會被外界訪問,基本沒有安全問題。
或者,讓 fastcgi 程序跑在 UNIX socket 上,這是文件系統的一個文件,不佔用 TCP/IP 埠號。
python - Django, nginx, FastCGI
兩個程序之間通信,總需要一個埠,要麼 TCP/IP,要麼 UNIX socket。如果要讓 Python 解釋器直接跑在 Nginx 引擎里,這就類似 Apache mod_python 的做法了,會讓進程變重。OpenResty.org 是在 nginx 里跑 Lua,Python 還沒聽說過。
⑸ 如何快速有效的安裝Python+Nginx+Tornado+Mysql
下面我將介紹在UNIX(linux、MAC下的配置方法其本一致)下如何快速搭建其運行環境:
1、安裝Python
wget http //www python org/ftp/python/2.7.5/Python-2.7.5.tgz tar xvfz Python-2.7.5.tgzcd Python-2.7.5 ./configure
make
sudo make install
2、安裝Python的包管理工具setuptools、pip和打包工具distribute
wget http //peak telecommunity com/dist/ez_setup.py python ez_setup.py
wget http //python-distribute org/distribute_setup.py python distribute_setup.py
wget https //github com/pypa/pip/raw/master/contrib/get-pip.py python get-pip.py
3、安裝Readline
sudo pip install readline
4、安裝Mysql
#安裝cmake wget http //www cmake org/files/v2.8/cmake-2.8.8.tar.gz
tar xvfz cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure
make
sudo make install #安裝mysql wget http //cdn mysql com/Downloads/MySQL-5.5/mysql-5.5.29.tar.gz
tar xvfz mysql-5.5.29.tar.gz
cd mysql-5.5.29
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/localmysql/data/ -DMYSQL_UNIX_ADDR=/usr/localmysql/data/mysqld.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_unicode_ci -DWITH_DEBUG=0
make
sudo make install #下載安裝mysql-python wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz
tar xvfz MySQL-python-1.2.3.tar.gz
cd MySQL-python-1.2.3 #修改site.py中mysql_config的路徑(為mysql安裝路徑下的/bin/mysql_config), site.py
mysql_config = /usr/local/mysql/bin/mysql_config #更改完進行編譯和安裝 python setup.py build
sudo python setup.py install #將mysql安裝路徑下的lib加入到環境變數LD_LIBRARY_PATH中 export LD_LIBRARY_PATH=/usr/local/mysql/lib/:$LD_LIBRARY_PATH
5、安裝一些Python的常用模塊和tornado
pip install tornado
pip install torndb
pip install requests
pip install markdown
6、配置Mysql
groupadd mysql useradd -g mysql mysql chown mysql.mysql -R /service/mysql/ /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
7、安裝Nginx
wget http://nginx.org/download/nginx-0.8.33.tar.gz tar zxvf nginx-0.8.33.tar.gz
cd nginx-0.8.33 ./configure
make
make install
8、配置nginx,編輯/usr/local/nginx/conf/nginx.conf文件
user nobody;
worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
upstream snail {
server 127.0.0.1:8888;
}
sendfile on; #tcp_nopush on; keepalive_timeout 65;
proxy_read_timeout 200;
tcp_nopush on;
tcp_nodelay on;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
server {
listen 80;
server_name localhost; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host; # proxy_redirect false; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://snail; }
}
}
9、創建一個項目
vi demo.py
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
]) if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
10、運行這個項目
#啟動項目 nohup python demo.py & #重啟Nginx /usr/local/nginx/sbin/nginx -s reload
在瀏覽器中輸入http://127.0.0.1 看到頁面輸出hello word!
轉載,僅供參考,祝你愉快,滿意請採納。
⑹ win7下 nginx fastcgi 怎麼運行python
CGI的英文全稱為Common Gateway Interface(公共網關介面),是Nginx和動態腳本程序的橋梁,Nginx通過FastCGI介面將動態請求發送給FastCGI,FastCGI中的Wrapper進程生成一個線程,將請求交給腳本解釋程序執行,然後通過原來的socket將解釋執行後的結果原路返回給Nginx,之後Nginx將結果交給客戶端。 Nginx是通過套接字文件socket來將動態請求發送給wrapper,使用的是Tcp協議。wrapper通過CGI介面來接受請求。這樣web伺服器和解釋程序之間完全可以獨立開發,這樣避免了解釋程序直接調用伺服器的介面而導致的出錯和崩潰以及安全性問題。而且可以使Nginx專心處理靜態頁面請求和轉發動態請求,而將腳本解釋器安裝在另一台伺服器,使伺服器的壓力得到分攤。 CGI是作為php程序的補丁開發的,安裝PHP首先安裝其所依賴的庫,之後在編譯配置參數時加入對CGI的支持--enable-fpm --enable-cgi等選項。編譯PHP的擴展模塊,需要用到php中的phpize工具用來生成模塊編譯時的configure文件,如果運行phpize時無法生成configure文件,原因有:沒有安裝autoconf軟體包。 php-fpm進程的配置文件為/usr/local/php/etc/php-fpm.conf 可以對php-fpm進行相應的配置。 Nginx配置支持fastcgi: location ~ \.php${ root html; fastcgi_pass unix:/tmp/fastcgi.soke //通過套接字文件和cgi建立聯系,該文件在php-fpm.conf中設置 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME html$SCRIPT_FILE_NAME;設置參數 include fastcgi_params; //導入fastcgi參數配置文件,該文件在nginx安裝時自動生成。 }
⑺ Nginx+Python 怎麼搞才好
python服務後台運行
由於python程序一般只有單進程,因此要用uwsgi啟動多個python進程來同時服務,寫代碼時就要求所有請求必須是無狀態的。
為了保證python程序能一直運行,一般用supervisor來拉起並運行在後台。
supervisor配置這樣寫:
[program:app]
command = uwsgi
--socket 0.0.0.0:6580
--chdir /app
--mole app.wsgi
--processes 8
--master
--uid root
--listen 100
stopsignal=QUIT
autostart=true
autorestart=true
user=root
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=10
stdout_logfile=/app/log/debug.log
redirect_stderr=true
nginx轉發
要將請求轉到python,一般用nginx轉發請求到uwsgi,nginx配置文件中server段這樣寫:
server {
listen 8000;
location / {
uwsgi_pass 127.0.0.1:6580;
include uwsgi_params;
}
}
總結一下:一般的實踐是用uwsgi+supervisor啟動多個python程序的服務進程,再用nginx轉發uwsgi請求到python模塊。
⑻ 為什麼 Nginx 已經這么成熟,Python 還有各種如 web.py 等 web 框架
nginx是伺服器,web.py是web應用框架。
簡言之,前者封裝對網路io的處理,後者負責具體應用的邏輯,解決的問題是不一樣的。形象點呢,一個請求來了,nginx先把請求攔下來,發現要的是現成的東西(靜態文件),它就直接把現成的靜態文件返回給客戶端,這樣速度非常快,如果是其他的請求,再交給web.py解決,web.py解決完了之後,只是生成要返回的內容,並不自己做網路io,而是由nginx處理的。
這樣多好,一個安心處理網路、並發,順便把遇到簡單的請求直接ko掉。另一個專心處理應用的邏輯。
當然nginx能做的不只是這些,而為了開發方便web.py等框架都是內置簡單的web伺服器的。
至於tornado,它裡面既有web應用框架,也有web伺服器,而且這個伺服器用的還是高性能單線程非阻塞非同步的模型,是個例外。
⑼ 用python做web開發,tornado 如何部署,都是用nginx+supervisor嗎
因為Tornado是非同步的網路框架,性能夠好,可以直接放在最外層,但是為了避免阻塞問題,會開多個進程,然後使用 Nginx 做反向代理實現負載均衡。具體可以看這篇文章 Introction to Tornado 中文翻譯。
那麼這里就涉及到要開多個Tornado進程的問題,使用Supervisor來做這件事是最簡單的。Supervisor 的使用方法可以看這篇文章 Python 進程管理工具 Supervisor 使用教程
另外,如果你需要部署Django或者 Flask,則推薦 Nginx+Gunicorn+Supervisor
Nginx放在最外層,然後使用Supervisor做進程管理,使用Gunicorn啟動Django或者Flask,相較於uwsgi 的方法,簡單很多,而且Gunicorn可以讓你使用Gevent和Tornado來為你的後端實現非同步訪問,性能直接飆升。
⑽ 如何用Nginx部署Django
如果你在windows上開發的django項目。部署的話,需要分三步。
第一步:在linux下下載python用的依賴包,搭建python環境。將windows下的項目復制到linux下,使用django自帶服務進行啟動。
第二步:下載uwsgi模塊並且編寫配置文件來替代django自帶的服務模塊。
第三步:下載nginx包,編譯安裝。然後創建配置文件,配置nginx啟動django項目的信息。然後訪問即可。