Проблема конфигурации Nginx для Ghost Blog внутри подкаталога на сервере LEMP

Мои требования

  1. Блог призраков на www.mydomain.com/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 я могу запустить ghost на www.mydomain.com/blog. Но, к сожалению, я не могу получить доступ к чему-либо из корневого каталога, т.е. www.mydomain.com, поскольку он выдает ошибку 404

До Ghost Установить все внутри /usr/share/nginx/www был доступен в корневом каталоге. Теперь я использовал ls команда для проверки наличия файлов внутри папки /usr/share/nginx/www и я могу просмотреть эти файлы на моем терминале.

Когда я cd в /etc/nginx/sites-available/ папка, я вижу 2 файла и ghost по умолчанию и внутри /etc/nginx/sites-enabled/ Я могу видеть только файл- призрак.

Когда я копирую файл по умолчанию из /etc/nginx/sites-available/ в /etc/nginx/sites-enabled/, Ghost Blog выдает ошибку 404.

Вот файл по умолчанию Контент-сервер { listen 80 default_server; listen [::]: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;
        }
    }

2 ответа

Я нашел решение после некоторого интенсивного поиска Google

Теперь сначала я скопировал файл конфигурации Ghost Config из папки " Доступные сайты" в папку "Включенные сайты ", используя

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

После того, как файл скопирован, я перезапустил nginx, используя следующую команду service nginx restart

Теперь, когда я обновил страницу, я не мог видеть свой блог, но все из папки /usr/share/nginx/www быть доступным в корневом каталоге. т.е. все файлы из этой папки были доступны на mydomain.com

Возвращаясь к Призрачному блогу, я сделал резервную копию того же самого и удалил его из /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/

Я использовал решение в URL ниже, и это сработало.

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/

Другие вопросы по тегам