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

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

  1. Блог Ghost на www.mydomain.com/blog

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

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

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

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

Вот содержимое файла по умолчанию . server { слушаем 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;
            #}
    }

Вот ghost Содержимое файла

    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
задан 31 March 2017 в 12:18
2 ответа

Решение я нашел после интенсивного поиска в 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/

0
ответ дан 4 December 2019 в 06:52

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

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/

0
ответ дан 4 December 2019 в 06:52

Теги

Похожие вопросы