In very few situations would you be able to use nydus/ultralisks/brood-lords/upgraded overlords etc in a cannon rush situation.
I have barely beaten a good protoss cannon rush in the past as a zerg, as zerg are more vunerable to this strategy. I have found swarm hosts in use of defense, along with swarms of banelings and zerglings, (and hydralisks if the protoss is sending in air units as well) is the most effective strategy for me, especially if you have around 5 swarm hosts at the top of the base burrowed and spawning.
Spine crawlers and other isolated/distant hatcheries compliment this
strategy well. This may not always defeat all of the cannons/pylons in
the area, but will normally hold the opponent from attacking while you
build your forces/another base.
Nydus worms, brood lords, and ultralisks can be effective if the
cannon rush is continuing into late game, but a late game cannon rush
is rare, because either the opponent will build up an army rather than
cannons, or they will have rushed you/they have been rushed by you by
then. Preferably the latter.
If you can somehow sneak out a large number of zerglings, do so as
putting pressure on their base either slows the production of units or
the production of cannons.
All the late game strategies on this page do work, but only on the rare opportunity of a continuing cannon rush in late game. Remember most strategies compliment other strategies so mix and match some of them.
FOR THE SWARM!!!