What does "-45.el7" mean in "httpd 2.4.6-45.el7"?

That's version 2.4.6 and the part after the - is the package release version.

el (no e1 as stated in the question) represents Enterprise Linux and the following is its corresponding version (7). This version is consistent across RedHat and related distributions (including CentOS).

The packaging version changes when it has to be rebuilt because of a change to another package, which is why it increases even though the actual source package is still the same.

As you can see at the Red Hat open documentation, the characters after - are the Release version

[root@host ~]# yum info httpd
Available Packages
Name        : httpd
Arch        : x86_64
Version     : 2.4.6
Release     : 45.el7.centos
Size        : 2.7 M
Repo        : base/7/x86_64
Summary     : Apache HTTP Server
URL         : http://httpd.apache.org/
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.

Taking a look at the RPM naming convention, we can find the same structure explained as an example package:

  • release is the number of times this version of the software has been packaged.

This means that a package with the name 2.4.6-45.el7 has the upstream software version 2.4.6 and has been repackaged(for fixes or improvements) creating 45 "internal versions" of the repository that provides this package. Still looking at the Release field, el7 means the version of the Enterprise Linux we are using, followed by .centos(the distribution). -character is used to separate the upstream version from vendor specific information, while . is used to denote information that is specific about the version or release.

However, as RPM based distributions evolving, more things are being added to the package names, and we can find some names like kexec-tools-1.102pre-126.el5_7.7.x86_64, where stripping down you will find:

  • name: kexec-tools-1.102pre-126. Upstream version the packager is using as "stable/base" to develop and apply fixes to the software. As noticed at the comments by Christian Long, this part is further divided into version(1.102pre) and release(-126)
  • EL version: Version of the OS - el5_7. Since dots are being used as separator of information, the underscore means Enterprise Linux version 5.7.
  • Package Release: Same as above: .7 "repacks" of this package.
  • Architecture: Package architecture - .x86_64 - Useful when you need to install software of other compatible architectures like i386 packages on 64 bit based distributions.

In some packages, you can even find .20161112git at the package name, showing what specific fixes are being backported from that day at the upstream repo. Example: libpcap-1.4.0-4.20130826git2dbcaa1.el6.x86_64

You can query changelogs to see what has improved/fixed, what Red Hat issues were closed and CVEs patched, comparing with the current package version:

[root@host ~]# rpm -q --changelog httpd
* Thu Nov 03 2016 CentOS Sources <[email protected]> - 2.4.6-45.el7.centos
- Remove index.html, add centos-noindex.tar.gz
- change vstring
- change symlink for poweredby.png
- update welcome.conf with proper aliases

* Wed Aug 03 2016 LuboŇ° Uhliarik <[email protected]> - 2.4.6-45
- RFE: run mod_rewrite external mapping program as non-root (#1316900)

* Tue Jul 12 2016 Joe Orton <[email protected]> - 2.4.6-44
- add security fix for CVE-2016-5387

* Tue Jul 05 2016 Joe Orton <[email protected]> - 2.4.6-43
- add 451 (Unavailable For Legal Reasons) response status-code (#1343582)

* Fri Jun 17 2016 Joe Orton <[email protected]> - 2.4.6-42
- mod_cache: treat cache as valid with changed Expires in 304 (#1331341)

* Wed Feb 24 2016 Jan Kaluza <[email protected]> - 2.4.6-41
- mod_cache: merge r->err_headers_out into r->headers when the response
  is cached for the first time (#1264989)
- mod_ssl: Do not send SSL warning when SNI hostname is not found as per
  RFC 6066 (#1298148)
- mod_proxy_fcgi: Ignore body data from backend for 304 responses (#1263038)
- fix apache user creation when apache group already exists (#1299889)
- fix apache user creation when USERGROUPS_ENAB is set to 'no' (#1288757)
- mod_proxy: fix slow response time for reponses with error status code
  when using ProxyErrorOverride (#1283653)
- mod_ldap: Respect LDAPConnectionPoolTTL for authn connections (#1300149)
- mod_ssl: use "localhost" in the dummy SSL cert for long FQDNs (#1240495)
- rotatelogs: improve support for localtime (#1244545)
- ab: fix read failure when targeting SSL server (#1255331)
- mod_log_debug: fix LogMessage example in documentation (#1279465)
- mod_authz_dbd, mod_authn_dbd, mod_session_dbd, mod_rewrite: Fix lifetime
  of DB lookup entries independently of the selected DB engine (#1287844)
- mod_ssl: fix hardware crypto support with custom DH parms (#1291865)
- mod_proxy_fcgi: fix SCRIPT_FILENAME when a balancer is used (#1302797)
---remaining output suppressed---

It's not .e17, but .el7 and stands for centos 7.

2.4.6 is the primary version number and -45 the extended backport patches.