With the explosive growth of information and communication technology and its services, some popular Websites currently generate an enormous amount of Internet traffic. A content delivery network (CDN) would then become imperative for supporting such services efficiently. In this paper, we propose joint optimizing approaches for replica server placement, content caching in selected servers, and content request load assignment among the servers, aiming to minimize the ratio of unserved content request load when the network resources and server capacity are both limited. For this, we develop a mixed integer linear programming (MILP) optimization model. To mitigate the computational complexity of the MILP model, we further decompose the optimization problem into three sub-problems, including: 1) choosing the replica server nodes optimally; 2) deciding the content items to be cached in the replica servers; and 3) allocating the content request loads from users onto different servers. For these sub-problems, we develop corresponding heuristic algorithms and show that the proposed approach is not only efficient but also performs very close to the MILP model. We also find that a number of system limitations, such as different numbers of replica servers placed, link capacity, server processing capacity, and server storage capacity, jointly affect the performance of the CDN. Saturation trends are observed on the performance, which indicate that as long as sufficient resources have already been provided, augmenting the resources further may only lead to marginal additional performance improvement.