汇总:爬取简书全站文章并生成 API(四)

优采云 发布时间: 2020-11-23 12:04

  抓取Jianshu整个网站文章并生成API(四)

  

  简书

  通过前面的介绍,可以说这个小项目已经基本完成。当然,剩下要做的就是代码重构,功能的不断改进和错误修复。最后,部署是联机的。如第一节所述,将有两种部署和联机方式​​。本节首先介绍第一种方法,使用nginx + uwsgi + django +超级用户进行环境部署。

  nginx + uwsgi + django +环境部署主管

  我使用Django已有一段时间了,但是它一直在本地进行测试并且尚未部署。我认为根据其他人博客的教程进行部署应该很容易,但是在阅读了十多个有关百度和Google的教程之后,部署仍然没有成功。我真的很失望。最后,在其他人的帮助下完成了部署,因此我进行了部署。该过程失败了,包括部署过程中遇到的许多问题。在安装之前,让我向大家介绍基本知识。

  以下安装环境为CentOS7 x86_64 + python2.7.10 + Django1.9,CentOS 6也适用。

  1.安装

  首先,安装环境,除了nginx以外,其他两个可以通过pip安装:

  # pip install django

# pip install uwsgi

  可以使用yum直接安装nginx,有关编译和安装,请参阅编译和安装nginx。

  # yum install nginx -y

  创建Django应用程序。由于使用了nginx,因此最好将应用程序放置在nginx根目录中:

  # django-admin startproject jianshu_api

# cd jianshu_api/

# django-admin startapp jianshu

  然后在配置文件settings.py中设置要连接的数据库,将DEBUG = True更改为DEBUG = False,设置* ALLOWED_HOSTS = [''] **,并在末尾添加以下配置:

  STATIC_ROOT = os.path.join(BASE_DIR, 'static')

  然后运行并自动生成一个静态目录:

  # python manage.py collectstatic

  或直接将静态文件复制到相应目录:

  # cp -r /root/.pyenv/versions/2.7.10/lib/python2.7/site-packages/rest_framework /usr/html/jianshu/static/

# cp -r /root/.pyenv/versions/2.7.10/lib/python2.7/site-packages/django/contrib/admin/static/* /usr/html/jianshu/static/

  如果未正确设置,则在访问网站时无法加载相应的静态文件,如下所示:

  

  无法加载静态文件

  2.配置服务首先配置nginx:

  server {

listen 8080;

#server_name jianshuapi ;

access_log /var/log/nginx/api.log;

# app 根目录

root /usr/html/jianshu;

index index.py index.htm;

location / {

# nginx 收到请求会就转发到 9001 端口

uwsgi_pass 127.0.0.1:9001;

include /etc/nginx/uwsgi_params;

}

#设定静态文件所在目录

location ^~ /static {

alias /usr/html/jianshu/static;

}

}

  检查语法并重新启动:

  # nginx -t

# nginx -s reload

  配置uWSGi:

  首先为uWSGI操作创建配置文件jianshu.ini:

  # mkdir -p /etc/uwsgi && cd /etc/uwsgi

[uwsgi]

chdir = /usr/html/jianshu

socket = 127.0.0.1:9001

master = true

uid = root

wsgi-file = /usr/html/jianshu/jianshu_api/wsgi.py

processes = 2

threads = 4

chmod-socket = 666

chown-socket = root:nginx

vacuum = true

  测试uWSGi是否可以正常工作:

  # uwsgi /etc/uwsgi/jianshu.ini

  然后在命令行中访问:8080 /:

  

  api测试

  现在您可以看到部署已成功。但是通常我们使用主管来管理

  uwsgi和nginx,因此操作起来更加方便。

  3.使用主管

  有关主管的详细用法,请参阅:使用主管来管理流程。

  首次安装主管:

  # pip install supervisor

  然后生成配置文件:

  # echo_supervisord_conf > /etc/supervisord.conf

  开始监督:

  # supervisord

  提供uwsgi配置文件,打开/etc/supervisord.conf并在底部添加:

  [program:jianshu] ; 添加 uwsgi 的配置示例

command=/root/.pyenv/shims/uwsgi --ini /etc/uwsgi/jianshu.ini

directory=/usr/html/jianshu/

stdout_logfile=/var/log/supervisor/%(program_name)s_access.log

stderr_logfile=/var/log/supervisor/%(program_name)s_err.log

startsecs=10

stopwaitsecs=0

autostart=true

autorestart=true

[program:nginx] ;nginx 配置示例

directory=/

command=/usr/sbin/nginx -c /etc/nginx/nginx.conf

user=root

stdout_logfile=/var/log/supervisor/%(program_name)s_access.log

stderr_logfile=/var/log/supervisor/%(program_name)s_err.log

autostart=true

autorestart=true

startsecs=10

  然后重新加载主管配置:

  # supervisorctl reload

  查看主管的状态:

  # supervisorctl status

jianshu RUNNING pid 19466, uptime 0:07:08

nginx RUNNING pid 19490, uptime 0:07:05

  再次访问api界面:8080/。

  

  Jianshu API

  -终于完成了部署,非常高兴,欢迎每个人使用该API,但不要随意使用它,毕竟服务器资源有限!

  -下一节将介绍如何使用docker进行部署。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线