基于ubuntu的nginx+uwsgi+django的服务器搭建(到处是坑)


ps: 这篇文章产生是因为这两天查了好多资料不断爬坑才配置好,这两天没有一个很完整解释很清晰的资料。
  本文前半部分为查到的操作,后边为爬坑。希望这篇能帮到大家,欢迎批评指正。


1.工作过程

  • 网络请求-->nginx-->uwsgi-->django

2. django

django的安装以及创建项目这里不做表述
  • 项目结构如下:
项目结构
    ps:根目录为myweb
  • 测试服务器是否可用

      在根目录下执行python manage.py runserver ip:prot
    
启动django
     这里的0.0.0.0 是为了让所有局域网内的ip都能访问到服务器。12345为指定的端口出现下图即为成功
成功后的界面
    提示:如果用局域网内其他电脑访问不成功,请检查防火墙端口是否打开

3.uwsgi

  • 安装uwsgi
    使用pip install uwsgi 即可

  • 配置uwsgi
    在根目录下新建uwsgi.ini 并打开,配置如下

    [图片上传失败...(image-47bf89-1512845490869)]

uwsgi.ini详细配置
    以下配置内容和上图一样,为了那些喜欢cv大法的人
    
    
     [uwsgi]
     # 使用nginx时打开的
     # socket = 127.0.0.1:8081
     # 网络地址
     http = 0.0.0.0:8081
     plugins=python
     # 项目根目录
     chdir = /home/herb/server/myweb/
     # 文件自动生成的
     module = myweb.wsgi
     master = true
     processes = 4
     vacuum = true
     chmod-socket=666
     # 虚拟环境位置
     pythonpath = /home/herb/.pyenv/versions/h2/lib/python2.7/site-packages
     # 日志位置
     idaemonize = /home/herb/server/myweb/uwsgi8081.log

    
    注意:虚拟环境位置没有用虚拟环境的可以去掉
  • 用uwsgi 启动django项目

      在根目录下输入uwsgi --ini uwsgi.ini 命令即可启动uwsgi服务器成功后根据上边http设置的端口就可以成功访问网站
    
  • 停止uwsgi

    停止的方法很多,个人使用 ps aux | grep uwsgi 查看端口,然后kill -9 port即可停止

4. nginx

  • 安装nginx服务器

      在终端输入sudo apt install nginx即可安装
    
  • 配置nginx服务

      cd /etc/nginx/sites-enabled , 默认里边有default在里边配置即可,需指出,最近帮朋友配置centos时候,
      配置的路径为 /etc/nginx 里边的nginx.conf, ubuntu 默认指向的是sites-enabled 里边的default。
      配置如下:
    
    
      server {
          # 监听端口
           listen 80 default_server;
           listen [::]:80 default_server;
           root /var/www/html;
            
           index index.html index.htm index.nginx-debian.html;
            # 访问本服务器需要输入的地址,比如下边的写的就是其他人访问你需要使用www.xxxx.com进行访问
           server_name www.xxxxx.com;
           
           location / {
                log_not_found off;
                # 和uwsgi 链接的地址,本文件配置完需要把uwsgi里边的http注释,改为socket和下边相同
                uwsgi_pass 127.0.0.1:8081;
                include uwsgi_params;
            }   
    
      此时就可以用uwsgi 调用你的django了。
    

文章还未结束,下边才是大坑


5.静态文件处理

这两天就更,待续...

你可能感兴趣的:(基于ubuntu的nginx+uwsgi+django的服务器搭建(到处是坑))