I had to use awstats with Nginx this week and you don't have to use cgi-bin necessarily. Awstats comes with the awstats_buildstaticpages.pl script that will generate static html files which you can then serve with Nginx. With a cron job I update the html files regularly.
/usr/share/doc/awstats/examples/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl
/usr/share/awstats/tools/awstats_buildstaticpages.pl -update -config=domain.com -dir=/path/to/save/html/files awstatsprog=/usr/lib/cgi-bin/awstats.pl
(Depending on your OS the paths may differ a little but you will be able to find the scripts)
In order to prevent data loss during log rotation you can add this line to your awstats.domain.com.conf file:
LogFile="/usr/share/awstats/tools/logresolvemerge.pl /path/to/log/access.domain.tld.log /path/to/log/access.domain.tld.log.1 |"
The script will merge the last 2 logs whenever you fetch the log for updating your data. Or you can add a pre-logrotate hook on Nginx like they do here: http://www.bytetouch.com/blog/system-administration/how-to-awstats-installation-and-configuration-on-debian/