A product of the club's academy, the 19-year-old right-back was handed his first-team debut against Stranraer in the Scottish Cup in January 2020, and then made his European debut in the Europa League last-16 tie against Bayer Leverkusen in August.
The Scotland Under-21 player has made four appearances this season, including a European start in Poznan in the Europa League and also on Saturday as a substitute as Rangers beat Ross County 5-0 in the Scottish Premiership at Ibrox.
Manager Steven Gerrard told the club's official website: "We have monitored Nathan's progress closely over the past 18 months.
"His attitude is second to none and I am particularly pleased with his desire to learn from his team-mates especially our captain James Tavernier.
"Ross and I have discussed our plan with Nathan for the incoming 18 months and have made our expectations clear.
"Nathan is a strong example of our player pathway for those who are training with the first team and in our academy."
Sporting director Ross Wilson added: "We are delighted with Nathan's development. He is training really well, working diligently and showing strong progress.
"Aside from his technical and tactical work he has made significant physical gains working with our sports science performance staff.
"He's made a strong impression on Steven and the staff in training and when he's played in the team.
"Aside from our staff and his family who support him brilliantly, James Tavernier is another strong and positive influence on Nathan.
"When he signed a new contract last December I was clear to him and his family that if he outgrew that contract we would reward him further.
"I am delighted we are doing that in this contract extension which is another positive move in our club."