SELinux will protect you but will always fight you.
To harmonize vsftpd and httpd with SELinux breathing down its neck you will need to follow some steps to make sure everything works together.
Firstly as FTP and Apache services will be running in a shared directory (on CentOS thats usually: /var/www/html/ ) you will need to allow one of them to have complete read/write access. You can set a boolean for SELinux to allow httpd full access by using the following command:
setsebool -P allow_httpd_anon_write=1
Lastly you can now set a SELinux context label on the directories to allow the FTP service (vsftpd) access to these files:
sudo chcon -R -t public_content_rw_t /var/www/html/