This is a perfectly valid case for reverse proxying. I linked to Nginx web site for explanation, because Nginx is very good at reverse proxying, but Apache with mod_proxy
and mod_proxy_http
will also work perfectly.
There are plenty of questions with high quality answers on this topic here; @HermanB linked one of them, but I suggest you to also search for others.
Basically, this task is accomplished with just the following in the VirtualHost:
<VirtualHost *:80>
ServerName x.domain.tld
...
ProxyPass /blog/ http://blog.domain.tld/blog/
ProxyPassReverse /blog/ http://blog.domain.tld/blog/
</VirtualHost>
Such config can be applied in addition to "main site", i.e. everything not under the /blog/
URI would be served as before, as if there were no proxy directives.
As it is evident from the config snippet, the blog itself is must be installed to the web server blog.domain.tld
so to be available under the path blog
. I strongly recommend this approach, it must be not rebased (i.e. the same URI base /blog/
must be used on both servers); this way you will easily circumvent some hard to tackle problems, which arise from the fact reverse proxies usually don't rewrite URLs in proxied data. And be sure your application (Wordpress) generates all internal links only using relative URIs.