2017-01-05 1 views
0

새로운 프로젝트를 시작하고 Flask와 Flask-RESTful을 사용하는 백엔드 나머지 서비스로 python을 사용해보기로 결정했습니다. 상자에 들어있는 모든 것이 작동합니다. Gunicorn으로 앱을 시작하고 로컬로 컬 할 수 있습니다.부랑자의 gunicorn이 nginx를 필요로하는 이유

브라우저 나 ARC (휴식 서비스 테스트 용 크롬 앱) 또는 네트워크에서 mvc 클라이언트를 실행중인 다른 방해석 상자에서 연결을 시도하면 연결이 거부됩니다.

내가 파이썬 나머지 서버에서 리버스 프록시로 nginx 이해하지만 어떻게 해야할지 이해가 안되는 방법을 발견했습니다. 그것은 마치 Gunicorn의 직업이 될 것 같은가요?

내 방랑 파일은 플라스크의 응용 프로그램은 말 그대로 http://flask-restful-cn.readthedocs.io/en/0.3.5/quickstart.html의 예입니다이

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

Vagrant.configure("2") do |config| 
    config.vm.define "rest" do |rest| 
     rest.vm.box = "gbarbieru/xenial" 
     #rest.vm.network "forwarded_port", guest: 8000, host: 8000 
    end 
    config.vm.define "mvc" do |mvc| 
     mvc.vm.box = "gbarbieru/xenial" 
    end 

    # Disable automatic box update checking. 
    # config.vm.box_check_update = false 

    # Forward ports 
    # config.vm.network "forwarded_port", guest: 8000, host: 8000 

    # host-only access to the machine using a specific IP. 
    # config.vm.network "private_network", ip: "192.168.33.10" 

    # Public network which makes the machine appear as another 
    # physical device on your network. 
    config.vm.network "public_network" 

    # Share an additional folder to the guest VM. 
    # config.vm.synced_folder "../data", "/vagrant_data" 
end 

같은 설정입니다.

MVC 클라이언트가 아직 업 그레 이드되지 않았습니다.

는 지금 내 로컬에 내가 MVC로 휴식과 192.168.1.13으로 192.168.1.12을 가지고 당신이 최소한을 복용하고 가정의 모든 방법을 게스트/호스트 호스트/게스트 및 게스트/손님

답변

1

를 Ping 할 수 app.run(host= '0.0.0.0', debug=True)

from flask import Flask 
from flask_restful import Resource, Api 

app = Flask(__name__) 
api = Api(app) 

class HelloWorld(Resource): 
    def get(self): 
     return {'hello': 'world'} 

api.add_resource(HelloWorld, '/') 

if __name__ == '__main__': 
    app.run(host= '0.0.0.0', debug=True) 

이것은 서버가 모든 네트워크 인터페이스에 바인딩 및 로컬 호스트 서버에서뿐만 아니라에서뿐만 아니라 도달 할 수 있는지 확인합니다 : 귀하의 링크 http://flask-restful-cn.readthedocs.io/en/0.3.5/quickstart.html에서 예를 들어, 당신은 app.run 호출에 다음과 같이 변경해야 방미의 경우 귀하의 호스트

두 번째 옵션은 서버를 실행하면 서버는 만 에 액세스 할 수 있는지 알 수

외부에서 볼 수있는 서버 장에서 http://flask.pocoo.org/docs/0.12/quickstart/#a-minimal-application에서 언급 한 바와 같이 특정 호스트에서 실행하도록 서버를 강제하는 것입니다 자신의 컴퓨터가 아닌 다른 네트워크에서. 디버그 모드에서 사용자가 응용 프로그램 사용자는 컴퓨터에서 임의의 파이썬 코드를 실행할 수 있기 때문에 이것이 기본값입니다.

디버거가 비활성화하거나 명령 줄에 --host=0.0.0.0를 추가하여 서버가 공개적으로 사용할 수 , 네트워크에 사용자를 신뢰 한 경우 :

flask run --host=0.0.0.0

이 운영 체제를 알려줍니다 모든 공개 IP에서 수신 대기합니다.

+0

감사합니다. 나는 Guincorn에 대해 이것을 게시 직후에 실제로 발견했습니다. 궁금한 점은 0.0.0.0 또는 역방향 프록시 실행> – nerdlyist

+0

의 이점입니다. '0.0.0.0'에서 실행하는 주된 이점은 주로 역방향 프록시를 설정할 필요가 없다는 점입니다. 그래서 기능을 개발하고 신속하게 설정해야 dev에 모드에서, 나는 가장 간단한 설정으로 이동하고 추가 인프라의 설정을 훨씬 피할 수 있다면 훨씬 더 –

+0

명확하게 마지막 지점. 따라서 프로덕션 환경으로 이동할 때 역방향 프록시를 사용하는 것이 좋습니다. – nerdlyist

관련 문제