Low-Power Wide-Area Network (LPWAN) based on LoRa physical layer is envisioned as one of the most promising technologies to support future Internet of Things (IoT) systems. LoRa provides flexible adaptations of coverage and data rates by allocating different Spreading Factors (SFs) to end-devices. Although most works so far had considered perfect orthogonality among SFs, the harmful effects of inter-SF interferences have been demonstrated recently. Therefore in this work, we consider the problem of SF allocation optimization under co-SF and inter-SF interferences, for uplink transmissions from end-devices to the gateway. To provide fairness, we formulate the problem as maximizing the minimum achievable average rate in LoRa, and propose a SF allocation algorithm based on matching theory. Numerical results show that our proposed algorithm enables to jointly enhance the minimal user rates, network throughput and fairness, compared to baseline SF allocation methods.