이것은 첫 번째 웹 응용 프로그램 배포이며 모든 종류의 문제가 발생합니다.
현재 Django 앱의 nginx + gunicorn 구현을 시도하고 있지만 대부분이 질문은 nginx 구성과 관련이 있습니다. 일부 상황에서-nginx는 gunicorn 로컬 서버에 대한 연결 및 프록시를 수신합니다.
nginx 구성에서 제공해야한다고 말하는 곳은 server_name
무엇입니까? 네트워크의 외부 IP (정적)와 수신 할 포트 번호를 통해 어떤 종류의 도메인 이름도 사용할 계획이 없습니다.
내가 원하는 것은 내가 사이트에 접근 할 수있는 것과 같은 것에 접근 할 때 http://xxx.xxx.xxx.xxx:9050
이다.
다음은 참조 용으로 구성 할 샘플 코드입니다.
server {
listen 80;
server_name WHAT TO PUT HERE?;
root /path/to/test/hello;
location /media/ {
# if asset versioning is used
if ($query_string) {
expires max;
}
}
location /admin/media/ {
# this changes depending on your python version
root /path/to/test/lib/python2.6/site-packages/django/contrib;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://localhost:8000/;
}
# what to serve if upstream is not available or crashes
error_page 500 502 503 504 /media/50x.html;
}
답변
server_name
기본값은 빈 문자열이며 괜찮습니다. 완전히 제외 할 수 있습니다.
“나는 이것에 이름을 붙이고 싶지 않다”필요에 대한 또 다른 일반적인 접근법은 server_name _;
귀하의 http://xxx.xxx.xxx.xxx:9050
URL이 설정,하지만 작동하지 않습니다; 포트 80 만 듣고 있습니다. 또한 포트 80을 추가해야합니다 listen 9050;
.
답변
서버 이름 _; 와일드 카드가 아닙니다. 여기를 참조하십시오.
http://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server
IP 전용 액세스를 위해 default_server 지시문 만 지정하십시오 ( http://nginx.org/en/docs/http/request_processing.html 참조 ).
server {
listen 1.2.3.4:80 default_server;
...
}
답변
앱이 특정 호스트 이름없이 포트 9050에서 응답하도록하려면 server_name을 건너 뛸 수 있습니다 .Nginx가 먼저 수신 항목을 확인한 다음 server_name이있는 경우 필요하지 않습니다.
server {
listen 9050;
.....
}
자세한 내용은 여기 : Nginx server_name 및 작동 방식