Мои требования
Блог Ghost на www.mydomain.com/blog
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 файла призрак и дефолт и внутри /etc/nginx/sites-enabled/
Я могу видеть только призрак файл.
Когда я копирую дефолт файл из /etc/nginx/sites-available/
к /etc/nginx/sites-enabled/
, Блог-призрак выдает ошибку 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;
}
}
Я использовал решение, указанное ниже, и оно сработало.
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/
Я нашел решение после интенсивного поиска в Google
Теперь сначала я скопировал файл конфигурации Ghost по умолчанию из доступные сайты папку в сайты включены папка с использованием
cp /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
После того, как файл был скопирован, я перезапустил nginx, используя следующую команду service nginx restart
Теперь, когда я обновил страницу, я не мог видеть свой блог, но все из папки /usr/share/nginx/www
доступен в корневом каталоге. т.е. все файлы из этой папки были доступны на mydomain.com
Возвращаясь к блогу Ghost, я сделал резервную копию того же самого и удалил ее из /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/