It also could be caused by a worn out battery, or battery terminals that need a thorough cleaning and tightening. Try turning the headlights on, and then watching the brightness of the lights while you try to start the motor. If the lights go out or dim way down when you try to start; the problem is a weak or discharged battery, or battery terminals that need to be cleaned and tightened.
If the lights stay bright while you try to start, then the starter relay or starter solenoid is probably bad. A bad ignition relay would not be as likely as the starter relay or solenoid; but it could be possible.
If the battery tests good; you could test the starter motor by connecting a single jumper cable to the battery positive terminal and briefly touching the other end of that cable to the large terminal on the starter solenoid that is closest to the starter motor. The starter motor should run when you do that; but it probably will not engage with the flywheel; so do not leave the cable connected for more than a second. If the starter does not run in this test; then it is probably defective.
If the starter runs in this test, try briefly touching the jumper cable to the blade terminal at the 3 o'clock position on the starter solenoid (after disconnecting the harness wire which normally connects to that terminal). Be careful to keep hands, clothing, and tools away from the fan and pulleys during this test; because the starter should run and turn the engine. If it does; this means that the starter and starter solenoid are both good; and either the ignition switch, the starter relay, or the ignition relay are bad.
The starter relay and ignition relay each cost less than $10; so the easiest way to proceed if you get to this point would be to replace those two relays; one at a time. If you replace both relays and the car still does not start; make sure that you didn't forget to reconnect the harness wire to the starter solenoid. If that was not the problem; the ignition switch is probably defective.