Nginx Dynamic Server Name

Posted October 10, 2015 8k views

I have Nginx setup for dynamic hosts (similar to Apache mass vhosts) and this is causing an issue with Postfix.

This is causing an issue for the server sending emails - Message-ID with no domain name.

In my server block I have server_name ~(?<domain>.+)$;

When Postfix sends an email, the message ID doesn’t show a FQDN, it shows @~(?<domain>.+)$, the same regex used for my server_name.

Does anyone know how to get Nginx/Postfix to play nicely together? The only thing I can think of is that Nginx isn’t passing the server_name properly.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
2 answers


I believe Postfix is using the hostname that is passed to it by PHP. By default, the fastcgi_params file contains the following line:

fastcgi_param  SERVER_NAME        $server_name;

Adding the following line in your nginx config above include fastcgi_params; should set the $_SERVER['SERVER_NAME'] PHP variable to the actual domain name:

fastcgi_param  SERVER_NAME        $host;

Don’t forget to restart Nginx so that the changes take effect:

sudo service nginx restart