참조 :
http://blog.sina.com.cn/s/blog_7cb52fa80102vrri.html
노동자를 구성한 후 odoo 다음과 같은 오류가있을 것이다
역 추적 (가장 최근 통화 최종) :
_handle_exception에서 파일 "/opt/odoo/openerp/http.py", 라인 (530),
반환 슈퍼 (JsonRequest, 자기) ._ handle_exception (예외)
파견의 파일 "/opt/odoo/openerp/http.py", 라인 567,
결과 = self._call_function (** self.params)
_call_function에서 파일 "/opt/odoo/openerp/http.py", 라인 (303)
반환 checked_call (self.db, * 인수, ** kwargs로)
래퍼에서 파일 "/opt/odoo/openerp/service/model.py", 라인 (113)
리턴 F (DBNAME, 인수 *, ** kwargs로)
checked_call에서 파일 "/opt/odoo/openerp/http.py", 라인 (300)
반환 self.endpoint (*는 ** kw)
__call__에서 파일 "/opt/odoo/openerp/http.py", 라인 796,
self.method를 반환 (* 인수, ** kw)
response_wrap에서 파일 "/opt/odoo/openerp/http.py", 라인 396,
응답 = F (인수 *, ** kw)
여론 조사에서 파일 "/opt/odoo/addons/bus/bus.py", 라인 188,
인상 예외 ( "bus.Bus 사용할 수 없습니다")
이유 :
노동자> 0 포트 8069에 스레드를 많이있을 것입니다.
당신은 8069 (최대-크론 - 스레드) 스레드 몇 크론이있을 것이다.
포트 8072 (longpolling 포트)에 스레드를 Gevent.
여기에 8072의 문제는 웹 요청은 8069에 의해 longpolling. HTTP 오류 그래서.
해결 방법 :
리버스 프록시 접근 방식을 설정하여 해결하기 위해
역방향 프록시 설정 참조 : https://www.myfreax.com/add-nginx-reverse-proxy-for-odoo/
1, 역방향 프록시로 nginx를 설치, 당신은의 nginx의 conf 파일을 구성 할 필요가 파일의 내용 추가 :
업스트림 odoo {
서버 127.0.0.1:8069;
}
odoo 채팅 {업스트림
서버 127.0.0.1:8072를;
}
서버 {
80 듣고;
서버 _ 로컬 호스트;
#charset KOI8-R;
#access_log 로그 / host.access.log 주;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
proxy_set_header $ 호스트 X는 - - 호스트에게 전달;
proxy_set_header X는-전달-를 들어 $ proxy_add_x_forwarded_for;
proxy_set_header X는 - 전달 - 프로토 $ 계획을;
proxy_set_header X-실시간 IP $ REMOTE_ADDR;
위치 / {
proxy_pass에 http : // odoo;
오프 proxy_redirect;
}
위치 / longpolling / {
proxy_pass에 http : // odoo 채팅;
오프 proxy_redirect;
}
위치 ~ * / 웹 / 정적 / {
proxy_cache_valid 200 90m;
에 proxy_buffering;
864000 만료;
proxy_pass에 http : // odoo;
}
2, 파일 odoo.conf 수정, 프록시 설정,
= 3 노동자
proxy_mode이 True =
당신이 사용하지 않도록 외부 장치 액세스 포트 8069에 필요한 경우 #을, 당신은 다음과 같은 구성에 추가해야
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1을
이 시점에서 다시 시작의 nginx와 odoo 서비스 후 문제가 해결 될 것입니다.