全然エライ人じゃないですけど……
pf で
rdr pass proto tcp from any to any port 8080 -> 127.0.0.1 port 80(8080番ポートへのアクセスを 127.0.0.1:80 にリダイレクトする)という設定を入れると、CGI に渡される環境変数は
SERVER_ADDR=127.0.0.1 SERVER_PORT=8080になる。
http://ya.maya.st/d/200707c.html#s20070731_1
core - Apache HTTP サーバ バージョン 2.2
UseCanonicalName off (2.0からデフォルト) だと、クライアントが渡してきた Host: ヘッダを SERVER_NAME、SERVER_PORT に使うのでそういうことになるのかなと。
port 80 しか Listen していない Apache に telnet で繋いで、Host: foobar:8080 を送ってやると以下のようになります。
$ telnet 127.0.0.1 80 Trying 127.0.0.1... Connected to localhost (127.0.0.1). Escape character is '^]'. GET /printenv.cgi HTTP/1.0 Host: foobar:8080 HTTP/1.1 200 OK Date: Wed, 01 Aug 2007 11:57:20 GMT Server: Apache/2.2.2 (Fedora) Connection: close Content-Type: text/plain SERVER_NAME="foobar" SERVER_PORT="8080"