Я на Ubuntu 14.04 с nginx.
Мой сайт построен на Laravel и работает так, как вы ожидаете: example.com, example.com/page и т. Д. Все работает
Я пытаюсь сделать следующее:
Каждая страница на example.com должна обслуживаться laravel, кроме example.com/blog. / блог должен обслуживаться Ghost.
Расположение сайтов:
Мне удалось успешно установить Ghost на поддомен (ghost.example.com), благодаря помощи этого руководства: https://www.digitalocean.com/community/tutorials/how-to-create-a-blog-with-ghost-and-nginx-on-ubuntu-14-04
Прямо сейчас, когда я захожу на example.com/blog, он ссылается на example.com
Это мой nginx conf:
server {
listen 443;
ssl on;
ssl_certificate ...;
ssl_certificate_key ...;
server_name example.com;
include hhvm.conf;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
root /var/www/laravel/public;
index index.html index.htm index.php;
location / {
# URLs to attempt, including pretty ones.
try_files $uri $uri/ /index.php?$query_string;
}
location ^~ /blog {
# this works perfectly
# return 301 http://www.google.com;
# I got this code from the tutorial
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;
}
# Remove trailing slash to please routing system.
if (!-d $request_filename) {
rewrite ^/(.+)/$ /$1 permanent;
}
}
Конфигурационный файл ghost:
production: {
url: 'https://example.com/blog',
mail: {},
database: {
client: 'sqlite3',
connection: {
filename: path.join(__dirname, '/content/data/ghost.db')
},
debug: false
},
server: {
host: '0.0.0.0',
port: '2368'
}
},
Задача ещё не решена.
Других решений пока нет …