There is a great deal of both overlap and variability in the symptoms associated with pharyngitis. Many causes can include visible swelling of the tonsils and tonsillar exudate, and so can be classified as tonsillitis.
The usual clinical question here is "should I treat this sore throat with antibiotics," which depends on symptoms, signs, history, and epidemiology. In an otherwise healthy individual, the treatment decision is more about preventing later complications associated with infection than treating the (self-limited) infection itself. In most practices the key question, then, is not just "is this bacterial or viral", it is, "is this Group A Streptococcus (GAS) or not". There is a good discussion of this issue and the evidence in the clinical practice guidelines from the infectious diseases society of America. Of note, there is some argument (see Cecil medicine Ch. 437, in addition to the discussion in the IDSA guidelines) for making the question "is this Fusobacterium necrophorum, GAS, or something else".
Now, with that preamble, we can get to the question in your title:
How do the symptoms of viral tonsillitis differ from bacterial tonsillitis
For an otherwise healthy pediatric or young adult patient in the US who is up to date on vaccinations, there are some useful symptom-based rules of thumb (see both the earlier linked guidelines, and the chapter in Cecil).
From the guidelines, signs and symptoms that strongly suggest viral etiology:
- Discrete ulcerative stomatitis
- Viral exanthema
Cecil's describes a useful evidence based risk score for deciding whether or not to treat with antibiotics (which is essentially a question re: what is the likelihood that this is group A strep). Each of the following gives 1 point: temperature > 38 C, absence of cough, swollen, tender anterior cervical nodes, tonsillar swelling or exudate, and age 3-14 yrs. Age 15-44 years gives 0 points, age >44 subtracts a point. If the score is 4 or more, you treat with antibiotics. If the score is 2 or 3, you culture the throat and treat if positive. if the score is 0 or 1, you observe. You can examine the evidence for this score here.
As the risk score algorithm indicates, one of the possible diagnostic next steps is a throat culture for GAS. There are also tests that detect the presence of antigen. It's important to note (as is discussed in the linked sources), that many patients are pharyngeal carriers of GAS, so detecting GAS may not provide any information about the cause of a particular bout of pharyngitis in general or tonsillitis in particular. There is a very good meta-analysis that relates to this point.