백엔드 개발 파이썬 튜토리얼 우분투에서 python+tornado+supervisor+nginx 배포

우분투에서 python+tornado+supervisor+nginx 배포

Jul 14, 2017 pm 06:13 PM
ubuntu 배포

기존 병원에서 수집한 데이터는 사진으로 촬영한 처방전 사진이었기 때문에, 활용해야 할 것은 처방전의 텍스트 형식입니다. 그래서 지난 2주 동안 사용자들에게 서버의 사진을 보여주고(당시 인원을 고용) 사용자들이 사진을 바탕으로 텍스트 정보를 입력할 수 있는 작은 프로그램을 작성했습니다.

예전에는 Java를 사용하여 웹 페이지를 작성했는데 최근에는 Python을 사용하여 기계 학습을 배울 것이라고 생각했기 때문에 새로운 것을 사용하고 싶고 프로그램이 상대적으로 작기 때문에 고려했습니다. 저장을 위해 mongodb를 사용합니다(실제로는 필요하지 않지만).

기본 아키텍처는 다음과 같습니다: (백엔드 언어) Python + (웹 프레임워크 및 웹 서버) tornado + (데이터베이스) mongodb + (프로세스 관리) 감독자 + (역방향 프록시) nginx

(1) python: Liao Xuefeng의 Python 튜토리얼을 보고 있어요

기본 문장 몇 개를 익히고, 이해가 안 되면 다시 확인해 보세요.

(2) 토네이도: 이 튜토리얼을 보고 배우기 시작했어요

tornado는 사용하기 매우 빠릅니다. 봄에는 전달자처럼 직접 요청을 매핑할 수 있고 tomcat과 같은 특정 포트에서 http 요청을 직접 모니터링할 수 있습니다. Tornado는 이러한 모든 작업을 get 및 Just post 메서드만 작성하면 됩니다. .

나머지는 자바 웹과 거의 동일합니다. springMVC 및 최대 절전 모드 프레임워크가 없으면 Python 패키지에서 컨트롤러, 서비스 및 DAO를 직접 계층화할 수 있습니다.

(3) mongodb: 비관계형 데이터베이스(mongodb에서는 문서라고 함)의 각 데이터 행이 동일한 필드 이름을 가질 필요는 없습니다. 다소 다를 수 있습니다. 또 다른 점은 트랜잭션이 지원되지 않고, 파이썬에서 여러 개의 읽기, 쓰기 문을 실행할 때 롤백할 수 있는 방법이 없기 때문에 프로그램 내 동시성으로 인해 발생하는 문제를 방지할 수 있는 방법을 찾아야 한다는 것입니다.

예를 들어 컬렉션에서 상태가 0인 문서를 찾아서 1로 업데이트해야 합니다. 즉, 사용자가 수정한 후 상태를 2로 설정한 다음 다시 넣어야 합니다. 여기서 0은 탐색하지 않음을 의미하고, 1은 탐색 중임을 의미하며, 2는 수정됨을 의미합니다. 이때 많은 사용자가 상태 0의 데이터를 동시에 획득했을 수 있습니다. 이는 우리의 바람에 반하며 많은 사람들이 동일한 데이터를 수정할 수 있게 합니다. update_one을 직접 고려하여 문서의 상태를 0에서 1로 변경한 다음 고유 필드를 추가하여 문서를 식별하고 이 고유 필드를 사용하여 문서를 찾을 수 있습니다. 이때 update_one 때문에 다른 사용자는 문서를 얻을 수 없습니다. 때가 되면 잠길 것이며, 다른 사람들은 이 데이터를 얻을 수 없습니다.

(4) supervisor: supervisor는 Python으로 개발된 프로세스 관리 프로그램으로, 일반 명령을 백그라운드 데몬으로 변환하고 프로세스 상태를 모니터링할 수 있습니다.

설치 후 /etc/supervisor/conf.d 디렉터리에 printprescription.conf 구성 파일을 추가하면 됩니다. 구성 예는 다음과 같습니다

으아악

구성이 완료되면 감독자 서비스를 열고 닫고 다시 시작할 수 있습니다. supervisorctl status를 사용하여 프로세스 상태를 확인할 수 있으며, 관련 로그 파일에서 오류 정보도 확인할 수 있습니다

으아악

 

(5) nginx: nginx는 포트 80을 모니터링하고 해당 요청을 다른 호스트 및 다른 포트로 전달할 수 있습니다. 여기에 표시되는 이미지의 경로는 tornado의 정적 경로가 아닙니다. js 및 css와 같은 프런트 엔드 정적 리소스를 서버의 다른 위치에 저장하므로 nginx 전달을 통해 이미지를 얻을 수 있습니다. 반면에 다른 포트(예: tornado가 수신하는 8001 포트)는 일반적으로 사용자에게 노출되지 않으므로 전달에는 nginx가 사용됩니다. 또한 위치 /static/ 지시어는 nginx에게 토네이도에 대한 요청을 프록시하는 대신 정적 디렉터리 파일을 직접 제공하도록 지시합니다. nginx는 토네이도보다 정적 파일을 더 효율적으로 제공할 수 있습니다.

nginx를 설치한 후 관련 구성 파일을 확인하고 다음 문장을 찾으세요: include /etc/nginx/sites-enabled/*. 구성을 위해 이 디렉터리에 새 구성 파일을 만들 수 있습니다

으아악

구성 예는 하단에 http://127.0.0.1:8001/ 이라는 점에 유의하세요. 여기서 마지막 슬래시를 입력하지 않으면 사용자가 "host"에 액세스할 때 실제로 위의 printprescription이 추가됩니다. /printprescription"은 Access "Host:8001/printprescription"과 동일합니다. 토네이도에 Host:8001/ 요청을 매핑했으므로 이때 404가 나타납니다.

으아악

 

(6)opencv:一个计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。由于之前采集数据的时候在处方图片数据中混杂了人脸图片,所以采用oepncv里的算法检测人脸,如果是人脸则删除该记录。然而还是会残留一些人脸图片,需要人工清洗,这个数据好像之前有师兄清洗过,到时候拿过来重构一下数据库。

ps:安装opencv的时候imshow报错,虽然imshow用不到,但是强迫症使然,搞了我一天,来来回回装了十多次,最后还是没搞定,真是心力交瘁,特想吐嘈:垃圾opencv!毁我青春!颓我精神!耗我时间!磨我意志!浪费人生!!!

好吧我就随便说说,回头还要靠它干活。

cv2.error: /io/opencv/modules/highgui/src/window.<span style="color: #0000ff">cpp</span>:<span style="color: #800080">583</span>: error: (-<span style="color: #800080">2</span>) The <span style="color: #0000ff">function</span> is not implemented. Rebuild the library with Windows, GTK+ <span style="color: #800080">2</span>.x or Carbon support. If you are on Ubuntu or Debian, <span style="color: #0000ff">install</span> libgtk2.<span style="color: #800080">0</span>-dev and <span style="color: #0000ff">pkg-config</span>, <span style="color: #0000ff">then</span> re-run cmake or configure script <span style="color: #0000ff">in</span> <span style="color: #0000ff">function</span> cvShowImage
로그인 후 복사

 

위 내용은 우분투에서 python+tornado+supervisor+nginx 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 터미널을 열 수 없으면 어떻게 해야 합니까? Ubuntu 터미널을 열 수 없는 문제를 해결하는 방법은 무엇입니까? Ubuntu 터미널을 열 수 없으면 어떻게 해야 합니까? Ubuntu 터미널을 열 수 없는 문제를 해결하는 방법은 무엇입니까? Feb 29, 2024 pm 05:30 PM

요즘 Ubuntu에서 사용자가 터미널을 여는 것을 허용하지 않는 것은 매우 일반적인 문제입니다. 유사한 문제가 발생하고 다음에 무엇을 해야 할지 모르는 경우 Linux 장치에서 "Ubuntu가 터미널을 열 수 없음" 문제를 해결하는 방법에 대한 5가지 수정 사항에 대해 알아보세요. 더 이상 고민하지 말고 문제의 원인과 이에 대한 해결 방법을 살펴보겠습니다. Ubuntu가 터미널을 열 수 없는 이유는 무엇입니까? 이는 주로 결함이 있는 소프트웨어를 설치하거나 터미널 구성을 수정할 때 발생합니다. 이 외에도 로캘과 상호 작용하여 이를 손상시키는 새로운 응용 프로그램이나 게임도 비슷한 문제를 일으킬 수 있습니다. 일부 사용자는 Ubuntu의 활동 메뉴에서 터미널을 검색할 때 이 문제에 대한 수정 사항을 보고했습니다. 이는 다음을 보여줍니다.

슈퍼유저로 Ubuntu에 로그인 슈퍼유저로 Ubuntu에 로그인 Mar 20, 2024 am 10:55 AM

Ubuntu 시스템에서는 루트 사용자가 일반적으로 비활성화되어 있습니다. 루트 사용자를 활성화하려면 passwd 명령을 사용하여 비밀번호를 설정한 다음 su- 명령을 사용하여 루트로 로그인할 수 있습니다. 루트 사용자는 무제한 시스템 관리 권한을 가진 사용자입니다. 그는 파일, 사용자 관리, 소프트웨어 설치 및 제거, 시스템 구성 변경에 액세스하고 수정할 수 있는 권한을 가지고 있습니다. 루트 사용자와 일반 사용자 사이에는 분명한 차이가 있습니다. 루트 사용자는 시스템에서 가장 높은 권한과 더 넓은 제어 권한을 갖습니다. 루트 사용자는 일반 사용자가 할 수 없는 중요한 시스템 명령을 실행하고 시스템 파일을 편집할 수 있습니다. 이 가이드에서는 Ubuntu 루트 사용자, 루트로 로그인하는 방법, 일반 사용자와 어떻게 다른지 살펴보겠습니다. 알아채다

Ubuntu 24.04 LTS의 7가지 주요 특징 미리보기 Ubuntu 24.04 LTS의 7가지 주요 특징 미리보기 Feb 27, 2024 am 11:22 AM

코드명 "NobleNumbat"인 Ubuntu24.04LTS가 곧 출시됩니다! Ubuntu 23.10과 같은 LTS가 아닌 버전을 사용하는 경우 조만간 업그레이드를 고려해야 합니다. Ubuntu20.04LTS 또는 Ubuntu22.04LTS를 사용하는 경우 업그레이드 여부를 고려해 볼 가치가 있습니다. Canonical은 Ubuntu 24.04LTS가 다음과 같이 분류하여 최대 12년 동안 업데이트 지원을 제공할 것이라고 발표했습니다. LTS 버전으로서 5년간 정기적인 유지 관리 및 보안 업데이트가 제공됩니다. Ubuntu Pro를 구독하면 추가로 5년 동안 지원을 받을 수 있습니다. 현재 이 추가 지원 기간은 7년으로 연장되어 최대 12년까지 지원을 받으실 수 있습니다.

Ubuntu 20.04 화면 녹화 소프트웨어 OBS 설치 및 제거 그래픽 튜토리얼 Ubuntu 20.04 화면 녹화 소프트웨어 OBS 설치 및 제거 그래픽 튜토리얼 Feb 29, 2024 pm 04:01 PM

OBS는 전 세계의 자원 봉사자들이 자유 시간에 개발한 오픈 소스 소프트웨어입니다. 주로 비디오 녹화 및 라이브 스트리밍에 사용되는 비디오 라이브 녹화 소프트웨어입니다. Ubuntu/Mint 설치 시 OBSStudio는 ChromeOS에서 완벽하게 작동하지 않으며 화면, 창 캡처 등의 기능을 사용할 수 없는 점 참고하시기 바랍니다. 전체 화면 프로젝터와 같은 OBS의 특정 기능에 대한 잠재적인 성능 문제를 방지하려면 xserver-xorg1.18.4 또는 최신 버전을 사용하는 것이 좋습니다. FFmpeg가 필요합니다. FFmpeg가 설치되어 있지 않은 경우(확실하지 않은 경우) 다음을 사용하여 설치할 수 있습니다. sudoaptinstallffmpeg 여기에 이미 설치되어 있습니다.

Ubuntu 24.04에 Angular를 설치하는 방법 Ubuntu 24.04에 Angular를 설치하는 방법 Mar 23, 2024 pm 12:20 PM

Angular.js는 동적 애플리케이션을 만들기 위해 자유롭게 액세스할 수 있는 JavaScript 플랫폼입니다. HTML 구문을 템플릿 언어로 확장하여 애플리케이션의 다양한 측면을 빠르고 명확하게 표현할 수 있습니다. Angular.js는 코드를 작성, 업데이트 및 테스트하는 데 도움이 되는 다양한 도구를 제공합니다. 또한 라우팅 및 양식 관리와 같은 많은 기능을 제공합니다. 이 가이드에서는 Ubuntu24에 Angular를 설치하는 방법에 대해 설명합니다. 먼저 Node.js를 설치해야 합니다. Node.js는 서버 측에서 JavaScript 코드를 실행할 수 있게 해주는 ChromeV8 엔진 기반의 JavaScript 실행 환경입니다. Ub에 있으려면

Ubuntu Linux에서 Firefox Snap을 제거하는 방법은 무엇입니까? Ubuntu Linux에서 Firefox Snap을 제거하는 방법은 무엇입니까? Feb 21, 2024 pm 07:00 PM

Ubuntu Linux에서 FirefoxSnap을 제거하려면 다음 단계를 따르세요. 터미널을 열고 Ubuntu 시스템에 관리자로 로그인하세요. FirefoxSnap을 제거하려면 다음 명령을 실행하십시오. sudosnapremovefirefox 관리자 비밀번호를 묻는 메시지가 표시됩니다. 비밀번호를 입력하고 Enter를 눌러 확인하세요. 명령 실행이 완료될 때까지 기다립니다. 완료되면 FirefoxSnap이 완전히 제거됩니다. 이렇게 하면 Snap 패키지 관리자를 통해 설치된 Firefox 버전이 제거됩니다. 다른 수단(예: APT 패키지 관리자)을 통해 다른 버전의 Firefox를 설치한 경우에는 영향을 받지 않습니다. 위의 단계를 거쳐보세요

Android TV Box, 비공식 Ubuntu 24.04 업그레이드 제공 Android TV Box, 비공식 Ubuntu 24.04 업그레이드 제공 Sep 05, 2024 am 06:33 AM

많은 사용자에게 Android TV 박스를 해킹하는 것은 어려운 일로 들립니다. 그러나 개발자 Murray R. Van Luyn은 Broadcom 칩 부족으로 인해 Raspberry Pi에 대한 적절한 대안을 찾아야 하는 과제에 직면했습니다. Armbia와의 협력 노력

Ubuntu에서 PHP를 설치하고 MSSQL 연결을 구성하는 방법에 대한 자세한 가이드 Ubuntu에서 PHP를 설치하고 MSSQL 연결을 구성하는 방법에 대한 자세한 가이드 Feb 29, 2024 am 11:15 AM

Ubuntu는 서버를 실행하는 데 일반적으로 사용되는 인기 있는 오픈 소스 운영 체제입니다. Ubuntu에 PHP를 설치하고 MSSQL 연결을 구성하는 것은 많은 개발자와 시스템 관리자가 자주 수행해야 하는 작업 중 하나입니다. 이 기사에서는 독자들에게 PHP 설치, Apache 설정, MSSQLServer 설치 등의 단계를 포함한 자세한 가이드를 제공하고 특정 코드 예제를 첨부합니다. 1단계: PHP 및 관련 확장 설치 먼저, PHP 연결을 지원하기 위해 PHP 및 관련 확장을 설치해야 합니다.

See all articles