It's impossible to show all the nodes of a big tree and have them all readable so compromises are inevitable:
Clearly the compromises are as follows:
Don't show the entire depth. Show subset of the levels or a selected discontiguous subset of the levels, possibly using a similar eliding technique as you might with text, to indicate undisplayed portions.
Don't show the entire breadth. Show a sequential subset of items at a given level, possibly scrollable or paginated in some way.
Both of the above
However, there are creative ways of adapting what you show and when. Some methods might put too much onus on the user to remember where in the tree to find things. Although a first view of the tree may be more exploratory, it might be worth considering navigation aids to help with repeat visits, such as favourites, history, bookmarks, or url-enabled views.
One approach for some inspiration might be to borrow some ideas from mapping tools. Maps after all are the ultimate tree view tool! Users can browse from a global view down to the tiniest village anywhere in the world, but you can't view both at once.
Here's a couple of examples:
Show a zoomed portion of the whole tree, with a highlighted thumbnail view of the whole tree in a corner view. This would work better if you have full zoom/pan controls, perhaps with 'notched' points for key zoom factors.

Use an automatic clustering technique as you might with pins on a map, where the clustering depends on the zoom factor.

I have in the past used the Google maps API as a browser based tool for navigating huge images (tiled) of large tree-like structures. It depends on how much interactivity you need with your tree.