我的要求
www.mydomain.com/blog 上的 Ghost 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,我能够在 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/