LEMP 服务器上子目录中 Ghost Blog 的 Nginx 配置问题

LEMP 服务器上子目录中 Ghost Blog 的 Nginx 配置问题

我的要求

  1. www.mydomain.com/blog 上的 Ghost Blog

  2. 根目录中有一个 index.html、contact.php、几个图像和 js 文件。(例如 www.mydomain.com/index.html、mydomain.com/contact.php 等)

阅读本教程后https://www.digitalocean.com/community/tutorials/how-to-create-a-blog-with-ghost-and-nginx-on-ubuntu-14-04,我能够在 www.mydomain.com/blog 上运行 ghost。但不幸的是,我无法从根目录(即 www.mydomain.com)访问任何内容,因为它会抛出 404 错误

在安装 Ghost 之前,里面的所有内容/usr/share/nginx/www都在根目录中。现在,我使用ls命令检查文件是否存在于文件夹中/usr/share/nginx/www,并且可以在终端上查看这些文件。

当我cd进入/etc/nginx/sites-available/文件夹时,我可以看到 2 个文件默认而里面/etc/nginx/sites-enabled/我只能看到文件。

当我复制默认文件从/etc/nginx/sites-available//etc/nginx/sites-enabled/,Ghost Blog 出现 404 错误。

这里是默认文件内容服务器{侦听 80 default_server;侦听[::]:80 default_server ipv6only = on;

            root /usr/share/nginx/html;
            index index.php index.html index.htm;

            # Make site accessible from http://localhost/
            server_name localhost;

            location / {
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ =404;
                    # Uncomment to enable naxsi on this location
                    # include /etc/nginx/naxsi.rules
            }

            error_page 404 /404.html;
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                    root /usr/share/nginx/html;
            }

            location ~ \.php$ {
                    try_files $uri =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }

            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                    root /usr/share/nginx/html;
            }

            location ~ \.php$ {
                    try_files $uri =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }

            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #       deny all;
            #}
    }

这里是文件内容

    server {
        listen 80;
        server_name SERVERIP/spider;
        location / {
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   Host      $http_host;
            proxy_pass         http://127.0.0.1:2368;
        }
    }

答案1

经过深入的 Google 搜索后,我找到了解决方案

现在,我首先从可用的站点文件夹已启用站点文件夹使用

cp /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

文件复制完成后,我使用以下命令重新启动了 nginx service nginx restart

现在,当我刷新页面时,我看不到我的博客,但文件夹中的所有内容/usr/share/nginx/www都可以在根目录中找到。即,该文件夹中的所有文件都可以在 mydomain.com 上访问

现在回到 Ghost Blog,我对其进行了备份并将其从/etc/nginx/sites-enabled/default文件夹中删除。

相反,我将以下代码粘贴到服务器对象内。

location ^~ /blog {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://127.0.0.1:2368;
    proxy_redirect off;
}

重新启动 nginx,成功了!

来源 https://allaboutghost.com/how-to-install-ghost-in-a-subdirectory/

答案2

我使用了下面网址中的解决方案并且有效。

server {
    listen       80;
    server_name  localhost;

  location ^~ /blog {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://127.0.0.1:2368;
      proxy_redirect off;
  }
}

https://www.ghostforbeginners.com/how-to-install-ghost-in-a-subdirectory/

相关内容