I probably can't help, but I'll throw some things out there.
You haven't provided any of your configs for nginx or gunicorn, which would be helpful. Perhaps you could provide those so others can take a look at them?
From the logs it seems like gunicorn is taking a poop somewhere in the process of attempting to launch. Perhaps a configuration error may be preventing the server from starting. If you haven't done so yet it's worth checking that your configs are kosher.
From the gunicorn configuration documentation:
To check your configuration when using the command line or the configuration file you can run the following command:
$ gunicorn my_app:gunicorn_my_app --check-config
It will also allow you to know if your application can be launched.
If everything comes back fine, then you can probably rule that out and take a deeper look. Gunicorn has a debug option that should let you see in great detail what exactly is going wrong. The docs say it can be done with the --debug option, like so:
$ gunicorn my_app:gunicorn_my_app --debug
Hopefully that should get you a little closer to understanding what's up.
I don't know if you're getting that nginx error every time you're trying to start the server, but I'll take a stab at what I can see in that error log.
Nginx only supports wildcard server names at beginning or the end of the name.
From the nginx documentation on server names:
A wildcard name may contain an asterisk only on the nameâ€™s start or end, and only on a dot border. The names â€œwww..example.orgâ€ and â€œw.example.orgâ€ are invalid. However, these names can be specified using regular expressions, for example, â€œ~^www..+.example.org$â€ and â€œ~^w..example.org$â€. An asterisk can match several name parts. The name â€œ.example.orgâ€ matches not only www.example.org but www.sub.example.org as well.
To listen on mydomain*.mydomain.com, you would use a regular expression in the server_name directive in the server block of your nginx.conf file.
The following regular expression would achieve this:
and you would put it in your nginx.conf like so:
And after saving any changes to your nginx.conf, always running this command is good practice:
$ sudo nginx -t
Just like gunicorn's --check-config, it parses your configuration files to check that there are no errors, and it will tell you if there are any that need fixing.
Apologies if this answer isn't ultimately useful.