I currently know the following open source GIS servers:
If possible i would like some kind of comparison, which did you choose or prefer and why?
I am looking at building a rails website, and need some kind of GIS server. I will need raster and vector data (clickable). Is this doable with one server? Backend database will be Postgis.
This question has been converted to Community Wiki and wiki locked because it is an example of a question that seeks a list of answers and appears to be popular enough to protect it from closure. It should be treated as a special case and should not be viewed as the type of question that is encouraged on this, or any Stack Exchange site, but if you wish to contribute more content to it then feel free to do so by editing this answer.
Laurent Jegou keeps up-to-date a great document listing all known webmapping solution and their scope and features (with both client and server technology). Unfortunately it is in french, but since it's all about technical stuff you will be able to understand it easily.
Definitely, it would not be enough to choose the right one, but at least you will be able to exclude some of them at a glance.
The latest version is available at the following url:
http://www.geotests.net/cours/sigma/webmapping/2016/fig6_2016.pdf
Well, this could be an huge discussion, I will try to give you some quick points in a few words. You may compare the software in your list from tree points of view:
1) Performances
Here the already suggested benchmark will be your best friend, at least for WMS
2) Services offered
Generally you may consider which services are offered from the software: this services may be compliant to OGC web standards (WMS, WFS, WCS, WPS, SOS, OCS...) or not.
GeoServer natively offers WMS, WCS and WFS (for the last two it is the reference implementation). It can also give support for WPS with an extension.
MapServer offers WMS, WFS, WCS and SOS, but with respect to GeoServer it lacks the transactional features for WFS (WFS-T). With respect to GeoServer in many case it has less architecture overhead (as it works with Apache httpd) and has a huge list of supported data format via GDAL/OGR. It lacks a nice admin web interface (like in GeoServer), but mapfiles can be easy modified and customized via shell or mapscript API.
Mapnik is a powerfull library that can be used as a WMS (and according to the last benchmarks at FOSS4G 2010 its performance are impressive).
There are other well knows softwares that provide implementations for WPS (pyWPS, ZooProject, 52n WPS), for OCS (GeoNetwork) and still other ones.
If you consider MapFish then you would possibly need to add the list GeoDjango and FeatureServer that offers not standard implementation of GIS web services. GeoNode is a cool attempt to web2.0fy a SDI (ie with tag and social stuff).
Also give a look to the new kid on the block: TileMill, that is mainly based on Mapnik, and it is build on the node.js framework
3) Architecture
GeoServer and GeoNetwork are Java based (so they require a servlet engine like Tomcat).
MapServer and Mapnik are C based, and they run well on Apache httpd.
All the other softwares are mainly based on Python using different frameworks: MapFish use Pylons, GeoDjango and GeoNode uses Django, FeatureServer and pyWPS are in pure Python. They can all run in httpd via modPython or WSGI or as CGI.
Note that almost all of this software is based on the ubiquos GDAL library (often even found in proprietary software).
From the point of view of performance, you may find interesting the following benchmark results:
http://www.slideshare.net/gatewaygeomatics.com/wms-performance-shootout-2010
Data about the benchmarks themselves can be found at http://wiki.osgeo.org/wiki/Benchmarking_2010.
There is also QGIS Server [1] (WMS). Read "QGIS Server – A WMS Server for the masses" [2] for more information.
I've compiled a small feature comparison between Geoserver and UMN Mapserver [3].
MapFish is a good framework, but you still need some map server in the background. If you are working with Rails, MapFish seems like a good way to go:
[1] http://karlinapp.ethz.ch/qgis_wms/The MapFish framework is built around an open HTTP-based protocol, allowing various interoperable implementations. In addition to the reference implementation provided by the Python/Pylons-based framework, two other implementations are currently available: a Ruby/Rails plugin (GPLv3) and a PHP/Symfony plugin (BSD)
It may be useful to mention geomajas as well. http://apps.geomajas.org/showcase/ Especially useful for building a GIS 'application' rather than just a presentation of maps. I like the advanced query and editing options.