记一次nginx+gunicorn使用记录

环境:CentOS Linux release 7.2.1511 (Core)
python2.7

1、安装nginx

1.安装nginx依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2.下载nginx压缩包(版本自行修改)

wget http://nginx.org/download/nginx-1.8.0.tar.gz

3.解压

tar -zxvf nginx-1.8.0.tar.gz 

4.进入目录编译安装

cd nginx-1.8.0 
./configure 
make && make install

等待安装完成即可,一般默认路径在/usr/local/nginx-1.8.0

安装gunicorn

pip install gunicorn

进入项目目录,编写uwsgi.ini文件

[uwsgi]
#使用nginx连接时使用
socket=127.0.0.1:9099
#直接做web服务器使用
#http=127.0.0.1:9091
#项目目录
chdir=/root/mgad3/mgad/mgad_data
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=/mgad_data/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log

我这里用的是gunicorn起服务,nginx转发到gunicorn中,所以在manage.py的目录里用:
1.后台执行,输出在log中,-w:开启4个并发量,-D:后台执行,-t:超时时间(秒),上传大文件时记得带上,否则会因为超时,gunicorn自动kill掉进程。

gunicorn --bind 172.x.x.x:8090 -w=4 -D --access-logfile ./logs/log mgad_data.wsgi:application

2.直接执行,输出在控制台

gunicorn --bind 172.x.x.x:8090 -w=4  --access-logfile ./logs/log mgad_data.wsgi:application

配置nginx
在/usr/local/nginx-1.8.0/conf/nginx.cong中

http {
      include       mime.types;
      default_type  application/octet-stream;
      sendfile        on;
      keepalive_timeout  65;
      server {
          listen       8008; # 监听端口,随意改
          server_name  crawler.taobao1.com;  # 向外开放的域名,可以是www.xxx.com或者172.x.x.x的类型(ip)
          location / {
              proxy_pass http://172.x.x.x:8090; # 将所有的内容转发到gunicorn所开放的ip和端口
          }
          # redirect server error pages to the static page /50x.html
          #
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }

如果你想通过www.baotao1.com访问自己的接口,在linux中,修改host映射文件就行,只需两步
1.vim /etc/host 然后添加一行:

www.taobao1.com 172.x.x.x(你的ip)

2.vim /etc/hosts

172.x.x.x www.taobao1.com

启动nginx

cd /usr/local/nginx-1.8.0
sudo /sbin/nginx

停止nginx

sudo /sbin/nginx -s stop

然后就可以通过这种方式访问了

curl 'http://www.taobao1.com:8090/index' -X POST -d '{"user_type":2,"use_mq":"true","kol_id":"58119178989","platform":22,"add_user":1, "level": "P7"}'

如果想在公网上访问你的专属域名,是要单独购买的,这个只能在局域网中使用

你可能感兴趣的:(linux,python,后台)