Nginx Dynamic Server Name

October 10, 2015 1.2k views
Nginx LEMP Ubuntu

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.

1 Answer


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
Have another answer? Share your knowledge.