【问题标题】:How to run django and wordpress with nginx如何使用 nginx 运行 django 和 wordpress
【发布时间】:2020-05-18 04:49:58
【问题描述】:

我在配置 nginx.conf 文件以在主域上运行 django 服务器和在 domain.com/blog 上运行 WordPress 站点时遇到问题。

这是我的配置文件,我的 WordPress dir/var/www/varzesh-kon/blog/:

upstream Main_Project_server {
server unix:/home/amirfarsad/django_env/run/gunicorn.sock fail_timeout=0;
}

server {

  listen   80;
  server_name 2n9l.s.serverhost.name;

  client_max_body_size 4G;
  access_log /home/amirfarsad/logs/nginx-access.log;
  error_log /home/amirfarsad/logs/nginx-error.log;

  location /static/ {
      alias   /home/amirfarsad/Main_Project/static/;
  }

  location /media/ {
      alias   /home/amirfarsad/Main_Project/media/;
  }

  location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      if (!-f $request_filename) {
          proxy_pass http://Main_Project_server;
          break;
      }
  }


  location /blog/ {
      root /var/www/varzesh-kon/blog/;
      index index.php index.html index.htm;
      try_files $uri =404;
  }

  location ~ \.php$ {
      try_files $uri =404;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
      root /var/www/varzesh-kon/blog/;
  }
}

我的 django 网站运行良好,但是当我转到 domain.com/blog 时,它给了我一个 404 not found nginx 页面。

【问题讨论】:

    标签: django wordpress nginx


    【解决方案1】:

    尝试改变你的底部location block

    location ^~ /blog {
            root /var/www/varzesh-kon/;
            index index.php index.html index.htm;
            try_files $uri $uri/ /index.php$is_args$args;
        }
    

    说明: 在root 指令的情况下,完整路径会附加到根目录,包括位置部分

    在你的情况下:

    location /blog/ {
          root /var/www/varzesh-kon/blog/;
    

    nginx 将派生的最终路径将是:

    /var/www/varzesh-kon/blog/blog
    

    这就是它向您显示404 not found页面的原因


    解决方案: 要么使用alias 而不是root

    或将根路径更改为/var/www/varzesh-kon/

    location /blog/ {
          root /var/www/varzesh-kon/;
    ...
    }
    
    location /blog/ {
          alias /var/www/varzesh-kon/blog/;
    ...
    }
    

    了解更多:wiki

    【讨论】:

    • 很好的解释
    • 非常有用的解释 404页面的问题现在已经解决了,但是我遇到了另一个问题 PHP文件正在下载而不是在浏览器中打开你知道我该如何解决吗?
    • 您可以按照本指南进行操作:digitalocean.com/community/tutorials/…
    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 2017-03-27
    • 2011-11-13
    • 2019-06-19
    • 2021-12-17
    • 2014-01-31
    • 1970-01-01
    • 2021-01-28
    相关资源
    最近更新 更多