you can use tiled backgrounds
background.Y = background.Y + scrollspeed
if background.Y > 600 then reset background.Y to starting position
That is literally all you need, just change numbers ( Y position ) to fit your game, I put 600 as an example only. That number will have to be a multiple of your tile height so it's not visible when you switch back to starting Y
for backgrounds farther away it would be:
background2.Y = background2.Y + scrollspeed*0.75
background3Y = background3.Y + scrollspeed*0.5
or up to you how much of a speed difference you want and of course, like the top background you reset each to their starting Y position once they scroll beyond certain point