I'm not exactly sure what you want to hear, but I think deferred lighting is still the best for many light sources.
The way you do that is that first you gather all the geometry properties by rendering the scene without any lighting at all. You basically render the scene in 4 versions into a buffer called G-Buffer: color, normal, depth, position. You may want to have more layers in your G-Buffer, like specular maps, and other information that you might need to get more control over the material properties.
With that information you're able to calculate the lighting easily as before, just this time not for every texel but only for every fragment on the screen. This saves a lot of calculations.
Another way to make that more efficient is now to render the lights as spheres into another buffer, where as the sphere size is calculated by the lights power and thus the effect radius, to determine which fragments to calculate lighting for.
I think this tutorial does a great job explaining how it works: http://ogldev.atspace.co.uk/www/tutorial35/tutorial35.html