I want to install a ghost blog with my angular app. Angular app and ghost blogs are in separate directories which are "example_site" and "example_blog" respectively in the file system. My angular app is on "example.in" and I want ghost blogs to be accessible under "example.in/blogs". I have used a proxy, Here is my apache server config
<virtualHost *:80>
ServerName example.in
ServerAlias www.example.in
ServerAdmin webmaster@localhost
RedirectMatch permanent ^(.*)$ https://www.example.in$1
</virtualHost>
<VirtualHost *:443>
ServerName example.in
ServerAlias www.example.in
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/example_site/dist/
<Directory /var/www/html/example_site/dist/>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.html [L]
</Directory>
ProxyPreserveHost On
ProxyPass /blogs/ http://127.0.0.1:2368/
ProxyPassReverse /blogs/ http://127.0.0.1:2368/
SSLEngine on
SSLCertificateFile /var/www/html/example_site/cert/123.crt
SSLCertificateKeyFile /var/www/html/example_site/cert/example.key
SSLCertificateChainFile /var/www/html/example_site/cert/examplecrt
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Here is my ghost config
{
"url": "https://example.in/blogs",
"server": {
"port": 2368,
"host": "127.0.0.1"
},
"database": {
"client": "mysql",
"connection": {
"host": "localhost",
"user": "admin",
"password": "***",
"database": "example_blogs_prod"
}
},
"mail": {
"transport": "Direct"
},
"logging": {
"transports": [
"file",
"stdout"
]
},
"process": "systemd",
"paths": {
"contentPath": "/var/www/html/example_blogs/content"
}
}
I got the solution I added RequestHeader set X-Forwarded-Proto https and did some changes to the files, Here is the updated files Here is my apache server config
<virtualHost *:80>
ServerName example.in
ServerAlias www.example.in
ServerAdmin webmaster@localhost
RedirectMatch permanent ^(.*)$ https://www.example.in$1
</virtualHost>
<VirtualHost *:443>
ServerName example.in
ServerAlias www.example.in
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/example_site/dist/
<Directory /var/www/html/example_site/dist/>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.html [L]
</Directory>
RequestHeader set X-Forwarded-Proto https
ProxyPreserveHost On
ProxyPass /blogs http://localhost:2368/blogs
ProxyPassReverse /blogs http://localhost:2368/blogs
SSLEngine on
SSLCertificateFile /var/www/html/example_site/cert/123.crt
SSLCertificateKeyFile /var/www/html/example_site/cert/example.key
SSLCertificateChainFile /var/www/html/example_site/cert/examplecrt
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Here is the ghost config file
{
"url": "https://example.in/blogs",
"server": {
"port": 2368,
"host": "127.0.0.1"
},
"database": {
"client": "mysql",
"connection": {
"host": "localhost",
"user": "admin",
"password": "***",
"database": "example_blogs_prod"
}
},
"mail": {
"transport": "Direct"
},
"logging": {
"transports": [
"file",
"stdout"
]
},
"process": "systemd",
"paths": {
"contentPath": "/var/www/html/example_blogs/content"
}
}