Faits: A. Dès le 1er août 2005, X._ est entré au service de Z._ SA pour contribuer au développement de la stratégie commerciale de cette société. Le salaire annuel brut, incluant une part variable, fut fixé à 170'000 fr. au maximum; il fut par la suite augmenté à 175'000 francs. Au mois de mars 2009, X._ apprit qu'il souffrait d'un polype cancéreux. Il continua de travailler jusqu'à la veille d'une opération chirurgicale puis il se trouva en incapacité de travail du 15 mars au 26 juin 2009. Le 22 juin 2009, l'employeuse a résilié le contrat de travail avec effet au 30 septembre 2009, au motif que le poste concerné était supprimé dans le cadre d'une nouvelle organisation. En signe de reconnaissance pour le travail accompli, l'employeuse annonçait le versement de deux salaires mensuels supplémentaires et d'un montant de 15'000 fr. à titre d'aide à la recherche d'un nouvel emploi. Ces prestations furent effectivement versées. B. Le 23 avril 2010, X._ a ouvert action contre l'employeuse devant le Tribunal civil de l'arrondissement de Lausanne. La défenderesse devait être condamnée à payer 50'000 fr. à titre d'indemnité nette, avec intérêts au taux de 5% par an dès le 1er octobre 2009. La défenderesse a conclu au rejet de l'action. Après l'interrogatoire du demandeur et l'audition de plusieurs témoins, le tribunal s'est prononcé par jugement du 16 mars 2011. Il a rejeté l'action. Le demandeur s'est pourvu devant la Cour d'appel civile du Tribunal cantonal. Statuant le 16 août 2011, cette autorité a rejeté l'appel et confirmé le jugement. C. Agissant par la voie du recours en matière civile, le demandeur saisit le Tribunal fédéral de conclusions principales semblables à celles prises dans les instances précédentes. A titre subsidiaire, il demande l'annulation de l'arrêt de la Cour d'appel et le renvoi de la cause à cette autorité pour nouvelle décision. La défenderesse n'a pas été invitée à répondre. 