Your host needs to be bound to an actual IP interface (we use 0.0.0.0 to bind to all, unless you absolutely need to bind to a specific IP you should keep this), Thus you should never directly use a domain here, as 90% of the time the domain won’t actually resolve to that IP if you are using any kind of load balancing/ect (you mentioned big project, taking a bit of liberty in making assumptions).
Instead you need to use the url key within the ./config/server.js as laid out here: https://strapi.io/documentation/v3.x/concepts/configurations.html#server
So it should look something like:
module.exports = ({ env }) => ({
host: env(‘HOST’, ‘0.0.0.0’),
port: env.int(‘PORT’, 1337),
url: env('STRAPI_URL', 'http://api.mydomain.com')
admin: {
auth: {
secret: env(‘ADMIN_JWT_SECRET’, ‘MY KEY IS HERE’),
},
},
});
You will need to rebuild the admin if you change that url key, even if you change it via the .env file.
As for Apache, I strongly advise against using that as a proxy, while it can support it, it doesn’t handle it well. I’d suggest using Nginx or HAProxy as your proxy interface and proxy traffic over to apache if needed for some reason (if all you are doing is proxying Strapi and some static files then you don’t need apache. Nginx can even handle php if you really need it via phpfpm).