Since most cards already have PXE burned in you'll need to chainload iPXE from PXE. This will result in an infinite loop where PXE loads iPXE which makes a DHCP request and loads iPXE which makes a DHCP request and loads iPXE. To break this loop you either have to flash the card with iPXE or compile your own iPXE rom that has an embedded script and thus provides different instructions than just "DHCP boot whatever file you're given".
1. Clone the ipxe source
2. In a directory accessible by the cloned source create the file boot.ipxe with the following content. This can be any number of arbitrary iPXE commands. In this case we're going to just call the generic hostname and boot script of our PXE webserver. This allows us to use the same iPXE rom file forever.
#!ipxe dhcp chain http://pxe.nexus.systems/boot.ipxe
3. Change to the ipxe source directory and run the following commands
aptitude install -y build-essential liblzma-dev cd ipxe/src make bin/undionly.kpxe EMBED=../../boot.ipxe