To run your rails server in production mode run :
rails s -e production
And to answer your actual question :
Rails.env uses ENV["RAILS_ENV"] internally, see :
https://github.com/rails/rails/blob/d25fe31c40928712b5e08fe0afb567c3bc88eddf/railties/lib/rails.rb#L59-L61
def env
  @_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end
but ENV["RAILS_ENV"] which is actually not set till now, so the option that is passed with -e if passed while the rails server command is triggered comes into picture, see:
https://github.com/rails/rails/blob/3e36db4406beea32772b1db1e9a16cc1e8aea14c/railties/lib/rails/commands/server.rb#L62-64
def set_environment
  ENV["RAILS_ENV"] ||= options[:environment]
end
for environment option see:
https://github.com/rails/rails/blob/3e36db4406beea32772b1db1e9a16cc1e8aea14c/railties/lib/rails/commands/server.rb#L31
      opts.on("-e", "--environment=name", String,
              "Specifies the environment to run this server under (test/development/production).",
              "Default: development") { |v| options[:environment] = v }
and all this is happening before your applications environment.rb is executed.
Hope this helps.