簡體   English   中英

找不到NGINX索引404

[英]NGINX Index 404 Not Found

我剛剛在運行NGINX的新服務器上安裝了Ghost Blog。 Ghost config.json文件指向正確的目錄/ blog,並且在我訪問它時博客加載正常。

不起作用的是,當我從URL中刪除/ blog時,進入了404頁面。 我已經檢查了啟用網站的文件,該文件如下所示:

server {
listen 80;
listen [::]:80;

server_name *********;
root /var/www/ghost/system/nginx-root;

location ^~ /blog {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_pass http://*********:2368;
    proxy_redirect off;
}

location ~ /.well-known {
    allow all;
}

client_max_body_size 50m;

但是我不完全確定我需要更改什么才能得到404錯誤。 我有一個示例.php文件,該文件應該正在加載但不是。

我一直使用Digital Ocean一鍵式Ghost應用程序,但這次我想使用Ghost CLI。 我有種想念的感覺。

以下內容可能會消除您的一些限制,但可以使用

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    server_name _;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/thedomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/thedomain.com/privkey.pem;

    access_log /var/log/nginx/thedomain.access.log;
    error_log  /var/log/nginx/thedomain.error.log;

    root            /var/www/thedomain;

    index           index.html;

    gzip on;
    gzip_proxied any;
    gzip_types text/css text/javascript text/xml text/plain application/javascript application/x-javascript application/json;

    location / {
        try_files   $uri $uri/ =404;
    }
}

您需要確保所有ssl文件都已存在,並且有權通過www-data訪問。

如果您需要首次運行certbot,請在80塊中使用443代碼而不使用ssl語句

您發布的Nginx配置僅適用於Ghost。

您已經設置了一個在端口80上響應的服務器,將根設置為Ghost的nginx-root,並創建了2個位置塊。 一個用於/blog/並服務於Ghost,第二個.well-known塊用於通過letencrypt處理SSL證書的生成。

我不是為PHP配置nginx的專家,但是Digital Ocean的本指南以及這個stackoverflow問題涵蓋了很多細節。

我認為您有兩種選擇:

  1. 將索引設置為index.php
  2. /添加新的位置塊,以提供php文件
  3. 添加一個塊來處理所有PHP文件

我相信添加這樣的新位置塊將意味着,如果URL中的路徑匹配,則將始終調用您擁有的任何.php文件。

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;
}

但是fastcgi_pass的值將取決於您如何在系統上設置PHP。

這樣,轉到/index.php應該可以工作。

設置index: index.php意味着/映射到/index.php我不確定這是否會干擾Ghost,如果確實如此,則需要一個特定的location / {}塊而不是設置索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM