我正在尝试设置一个幽灵博客,并希望使用nginx来处理传入的请求。鬼博客应该可以通过子uri内的网址访问:http://mydomain.com/blog文章会有http://mydomain.com/blog/article1等网址
到目前为止,我尝试配置这样的设置都没有用,我总是得到404错误。这是我的config.js:
var path = require('path'),
config;
config = {
// ### Production
// When running Ghost in the wild, use the production environment
// Configure your URL and mail settings here
production: {
url: 'http://mydomain.com/blog',
mail: {},
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost.db')
},
debug: false
},
server: {
// Host to be passed to node's `net.Server#listen()`
host: '127.0.0.1',
// Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
port: '2368'
}
}
}
// Export config
module.exports = config;
这是我的nginx配置:
server {
listen 0.0.0.0:80;
server_name mydomain.com;
access_log /var/log/nginx/mydomain-com.log;
location /blog {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:2368;
proxy_redirect off;
}
}
有谁能告诉我我做错了什么?
答案 0 :(得分:1)
此location
可以通过以下路径访问博客:
location ~^/blog(?<tail>.+$) {
# more proxy stuff
proxy_pass http://localhost:2368$tail;
}
它的表现是另一回事。
但是你可能在幽灵config.js
中读到了:
提供网站链接时使用的网址,例如在RSS和电子邮件中。 主机名后不得包含路径后缀 - “subdirs”尚未支持!
在我的测试中,博客主页与/blog
一起正常工作,但它包含文章的错误链接,没有前导/blog
。但是,如果您导航到某篇文章,然后在插入/blog
的位置栏上修改其网址,那么它也可以。
所以我猜你需要在Ghost上进行一些攻击或者等待下一个版本。
答案 1 :(得分:0)
也许您可以使用子域来执行此操作。并且您无需更改任何有关Ghost的配置。
upstream frontends {
ip_hash;
server 127.0.0.1:2368;
}
server {
listen 80;
server_name blog.mydomain.com;
location / {
proxy_pass http://frontends;
}
server {
listen 80;
server_name mydomain.com;
location / {
root html;
index index.html index.htm;
}
答案 2 :(得分:0)
对子目录的支持只在Ghost的0.4版本中实现,如果你之前尝试过它,它可能不起作用,至少它现在应该更容易,你可以只做1到1代理您的后端服务器的网址。