This paper addresses the problems of admission control and server selection in a system consisting of several geographically replicated web servers and several access points. We propose a fully distributed solution in which every access point continuously monitors the availability of all server side resources, using a mixture of active and passive measurements. Based on those measures, each access point autonomously applies its decisions to the requests it receives. Admission control is performed prioritizing requests belonging to already admitted sessions, in order to maximize the chance of successfully terminating ongoing sessions. Furthermore, session information is taken into account when performing a probabilistic request redirection and server choice, in order to improve load balancing and mitigate flash crowd effects. Extensive simulations, performed in compliance with industry standards, show that our method exhibits a stable behavior during overloads and improves service quality in terms of both reduced response time and higher successful session termination.