I can think of at least 3 solutions.
Solution 1, the unique server IDAssume that the nonce can be up to 19 digits long (64 bit int). Subtract 10 digits for the current unix timestamp.
Figure out the maximum number of machines you'll ever have, take X=ceiling(log
10(#)).
Now, take 9 and subtract X. Whatever you get is the number of digits to take from the front of the microseconds clock when making the nonce.
So, if you expect not more than 10,000 machines, X will be 4. So in your mtgox code, you use
$req['nonce'] = $mt[1].substr($mt[0], 2, 6).$unique_id_for_this_machine;
Solution 2, the proxyRelay all of your requests through another box that calculates the nonce and signature.
Solution 2, start overSeriously. What sort of distributed system needs access to an exchange?