방금 파이썬을 사용하여 simple web server을 쓸 수 있다는 것을 알았습니다. 이 머신에서 파이썬 기반의 웹 서버를 사용하고 싶습니다. 이미 아파치 웹 서버가 있습니다. 그러나 나는 그것을 시험해 보면 내가 어떤 종류의 갈등을 일으킬 수 있다고 생각합니다. 내 말은 두 웹 서버가 클라이언트의 요청을 누가 서버해야하는지 "결정"할 것입니다.동일한 컴퓨터에서 두 대의 웹 서버를 실행할 수 있습니까?
답변
다른 포트를 수신하게하면 문제가되지 않습니다.
기본 웹 포트는 80입니다. 포트를 지정하지 않고 브라우저에서 일부 URL을 열면 기본적으로 80이 사용됩니다.
다른 포트를 듣고 웹 서버를 구성 할 수 있습니다하지만 당신은 또한 URL에 명시 적으로 지정해야합니다 :이 특정 포트 번호는
http://localhost:8080
포트에주의를 선택 아니라고 아직 상자에 설치되어 실행중인 모든 소프트웨어에서 사용 중입니다. 그렇지 않으면 올바르게 추측 할 때 충돌이있을 것입니다.
P. 며칠 전 재설치를하면서 IIS를 시작할 수 없었습니다 (이유없이). Skype의 새로운 버전이이 기본 포트를 점령했습니다! "포트 80 및 443을 들어오는 연결의 대안으로 사용"설정을 제거해야했습니다.
두 개 이상의 웹 서버를 동일한 포트 (기본값은 80)로 열 수 없습니다. 두 개 이상의 웹 서버를 만들려면 다른 포트를 사용해야합니다.
DNS를 사용하는 경우 하위 도메인이나 다른 도메인에 대해 다른 웹 사이트가 필요할 경우 유용 할 수있는 다른 요청에 따라 다른 웹 사이트에 응답하도록 웹 서버를 쉽게 설정할 수 있습니다.
승리를위한 HTTP/1.1 –
실제로, 우박 우두머리를 사용하여 다른 것을 지정할 수 있습니다! – Dal
웹 서버가 특정 포트에 연결되어 있습니다. 일반적으로 이것은 포트 80입니다. 포트가 명시 적으로 지정되지 않으면 브라우저가 적중을 시도 할 포트입니다.
대체 서버를 다른 포트에서 실행할 수 있습니다 (8080 또는 8081은 웹 서버에서 많이 사용되는 것으로 보이지만 선택할 수는 있습니다).
충돌이 일어나지 않습니다. 포트 80으로 들어가는 모든 것은 이전 서버를 강타합니다. 8080 (또는 서버를 실행하기로 결정한 포트)으로가는 모든 것이 간단한 파이썬 서버에 충돌합니다.
웹 서버 접속 요청을 서비스하는 사람들의 발언권이없는 것 (이 작업은 운영 체제 수준에서 여전히) -이 :
가 다른 서버를 공격하기 위해 같은 URL을 사용합니다. 또한 특별한 소켓 옵션이 없으면 소켓은 인터페이스, 인터넷 주소 및 포트의 고유 조합에 바인딩되어야합니다.하나의 서버가 https (포트 443) 요청을 처리하도록 지정하는 것이 좋습니다.
그런 식으로 다른 사람이 언급 한 포트 충돌을 피할 수 있으며 사용자가 브라우저에 이상한 내용 (임의의 포트 번호)을 입력하지 않아도됩니다. 각 서버가 트래픽을 다른 서버로 리디렉션하도록 할 수도 있습니다 (예 : http 서버가 https 서버가 처리하는 것으로 알고있는 호스트 이름에 대한 http 요청을 수신하므로 요청을 동일한 호스트 이름을 사용하여 https로 리디렉션 할 수 있습니다. 적절한 서버).
서버 A :
http://localhost
서버 B :
https://localhost
,하지만 ...
그것은 마치 여러분이 개발자이기 때문에 시스템 관리자가 아니기 때문에 들립니다. 은 동일한 컴퓨터에서 파이썬과 PHP 사이트를 실행하기를 원합니다. 그래서, 만약 당신의 질문을 읽고있어 용서하지만,이 설치는 하나의 서버, 아파치에서 동일한 포트 (포트 80)와 같은 컴퓨터에서 두 가지 종류의 사이트를 실행할 수 있습니다. 와 127.0.0.1로 포인트 :
나는/hosts 파일 (\ WINDOWS \ system32를 \ 드라이버 \ Windows에서 등 \ 호스트 또는 C) : 내/등의 새로운 항목을 아파치에 그런
127.0.0.1 localhost
# development projects
127.0.0.1 somephpsite.com.local
127.0.0.1 www.somephpsite.com.local
127.0.0.1 otherpythonsite.com.local
127.0.0.1 www.otherpythonsite.com.local
나는 각 사이트에서 VirtualHost를 추가 : 그들은 항상 같은
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
<Directory "/Users/Robert/Projects/SomeSite/somephpsite.com">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
DocumentRoot "/Users/Robert/Projects/SomeSite/somephpsite.com"
ServerName somephpsite.com.local
ServerAlias www.somephpsite.com.local
ErrorLog "/Users/Robert/Projects/SomeSite/error.log"
CustomLog "/Users/Robert/Projects/SomeSite/access.log" common
</VirtualHost>
<VirtualHost *:80>
<Directory "/Users/Robert/Projects/OtherSite/otherpythonsite.com">
Order allow,deny
Allow from all
</Directory>
DocumentRoot "/Users/Robert/Projects/OtherSite/otherpythonsite.com/static"
Alias /(.*(\.css|\.gif|\.ico|\.jpg|\.js|\.pdf|\.txt)) /Users/Robert/Projects/OtherSite/otherpythonsite.com/static/$1
WSGIScriptAlias//Users/Robert/Projects/OtherSite/otherpythonsite.com/wsgi.py
ServerName otherpythonsite.com.local
ServerAlias www.otherpythonsite.com.local
ErrorLog "/Users/Robert/Projects/OtherSite/error.log"
CustomLog "/Users/Robert/Projects/OtherSite/access.log" common
</VirtualHost>
그래서, PHP 사이트가 DocumentRoot
에서 실행됩니다. 그리고 파이썬 사이트는 WSGI에서 실행됩니다. 둘 다 아파치에서 돌아 간다. 그런 다음 테스트하기 위해 로컬 복사본에서 작업 할 때 사용하는 브라우저에 ".local"을 추가합니다.
- 1. 두 대의 컴퓨터에서 데이터베이스 동기화
- 2. Python에서 한 번에 2 대의 서버를 실행할 수 있습니까?
- 3. 두 대의 컴퓨터에서 두 개의 서로 다른 프로세스가 동일한 RAM 주소에 동시에 액세스 할 수 있습니까?
- 4. CI 서버를 사용할 때 여러 대의 컴퓨터에서 코드를 개발하는 방법
- 5. 동일한 인트라넷에있는 두 대의 컴퓨터를 구별
- 6. 두 대의 컴퓨터에서 개발할 수 있도록 Git 저장소를 설정 하시겠습니까?
- 7. 모바일 플랫폼에서 HTTP 서버를 실행할 수 있습니까?
- 8. 여러 대의 컴퓨터에서 Git 실행하기
- 9. 두 대의 컴퓨터에서 동시에 로그인 할 때 Request.ServerVariables가 업데이트되지 않았습니다.
- 10. 안정된 인증 : 여러 대의 컴퓨터에서 로그인 할 수 있습니까?
- 11. TFS에 2 대의 서버를 사용하면 어디에서 설치할 수 있습니까?
- 12. 웹 소켓을 사용하면 브라우저에서 서버를 실행할 수 있습니까?
- 13. 동일한 웹 서비스의 여러 버전을 실행할 수 있습니까?
- 14. Perl - 여러 컴퓨터에서 스레드를 실행할 수 있습니까?
- 15. 가상 컴퓨터에서 IPhone 앱을 실행할 수 있습니까?
- 16. RemoteWebDriver 및 Grid - 서버를 가져올 수 있습니까?
- 17. Heroku에서 비트 코인 서버를 실행할 수 있습니까?
- 18. 로컬 컴퓨터에서 웹 서버를 모방하는 속도가 느림
- 19. Windows XP Home 랩톱에 로컬 서버를 설치하고 실행할 수 있습니까?
- 20. 동일한 Adobe AIR 앱을 두 번 이상 실행할 수 있습니까?
- 21. SQL 서버를 여러 대의 컴퓨터로 확장 할 수 있습니까
- 22. 한 대의 컴퓨터에서 EF4.1 오류가 발생하고 다른 컴퓨터에서 오류가 발생했습니다.
- 23. Django는 두 가지 버전을 실행할 수 있습니까?
- 24. 인터넷에있는 두 대의 컴퓨터 사이에 연결을 설정하십시오.
- 25. iPhone : 두 대의 비즈니스 용도로 한 대의 Mac을 사용할 수 있습니까?
- 26. 두 대의 XP 컴퓨터에서 PsExec이 "액세스가 거부되었습니다"라고 말합니다
- 27. 2 대의 서버 사이에 웹 소켓이 있습니까?
- 28. 매핑 된 드라이브에 저장소가있는 SVN 서버를 실행할 수 있습니까?
- 29. 서블릿을 사용하여 단일 세션으로 두 대의 서버를 통신하는 방법
- 30. 웹 서버없이 PHP를 어떻게 실행할 수 있습니까?
파이썬에는 FWIW가 내장되어 있으며 웹 서버 모듈 (SimpleHTTPServer)이 내장되어 있습니다. 기본 포트는 8000입니다. 다음 명령을 사용하여 명령 행에서 실행할 수 있습니다. python -m SimpleHTTPServer – ianalis