zoukankan      html  css  js  c++  java
  • 部署新的Django项目———〇三 .nginx的配置

    在前面我们已经通过uWSGI服务托管了Django,但是只实现了动态的请求,静态数据(图片,css,html文件等)还没有获取,所以要交给nginx处理。

    项目静态数据的迁移

    第一步我们需要django帮我们把项目所需要的静态文件迁移到指定的路径下,而django就为我们提供了一个这样的功能,collectstatic

    但我们需要要在settings.py文件中指定一下导出文件路径

    STATIC_ROOT = os.path.join('/root/code/blog/','static')

    这里我们用了join的方式,拼接出了一个新的路径——/root/code/blog/static/然后执行下面的命令

    [root@VM-0-13-centos blog]# python3 manage.py collectstatic

    就能将所需的静态文件归档到指定的路径下。

    nginx的配置文件

    项目所需的静态文件已经归档好后,就需要对nginx的配置文件进行修改。不多说了,把要修改的地方拿出来,其实没什么内容

        server {
            listen 90;
            server_name blog.com;
            location / {
                    proxy_pass http://127.0.0.1:8080;
               }
            location /static {
            root /root/code/blog/;}
           }

    就是加了一个server多监听,功能是通过定义proxy_pass对代理进行转发,还有就是定义了静态文件的路径。

    重启nginx服务,通过浏览器请求发现依旧无法加载静态文件,在这里查了半天问题,发现如果吧静态文件的路径定义在根目录下就没问题,而放在家目录下就不行了,估计是权限的问题,因为nginx进程的属主是nobody

    [root@VM-0-13-centos blog]# ps -ef|grep nginx
    root     14612     1  0 12月10 ?      00:00:00 nginx: master process /opt/nginx/sbin/nginx
    nobody   17226 14612  0 01:20 ?        00:00:00 nginx: worker process
    root     17857 11377  0 01:24 pts/1    00:00:00 grep --color=auto nginx

    初步的解决方法就是在配置文件中定义用户名

    user root;
    worker_processes  1;

    重启服务,查一下看看是不是好了!

    [root@VM-0-13-centos blog]# ps -ef|grep nginx
    root     14612     1  0 12月10 ?      00:00:00 nginx: master process /opt/nginx/sbin/nginx
    root     18599 14612  0 01:30 ?        00:00:00 nginx: worker process
    root     18602 11377  0 01:30 pts/1    00:00:00 grep --color=auto nginx

    属主已经成了root,这时候重新访问,就可以了!

  • 相关阅读:
    在Spring 中如果Girl要Kiss Boy咋办捏?
    对象的序列化
    HibernateHQL
    Struts 动态FORM实现过程
    对struts一点理解总结
    Hibernate Query Language(HQL)。
    Hibernate中Inverse和Cascade
    Spring 中的内部bean 和集合
    设计模式到底离我们有多远
    Aspx页面转静态页面
  • 原文地址:https://www.cnblogs.com/yinsedeyinse/p/14123585.html
Copyright © 2011-2022 走看看