>  기사  >  백엔드 개발  >  nginx가 요청을 처리하는 방법에 대한 자세한 예

nginx가 요청을 처리하는 방법에 대한 자세한 예

无忌哥哥
无忌哥哥원래의
2018-07-12 13:51:571546검색

1 먼저 두 서버 블록은 다음과 같이 구성됩니다.

server {
       listen   80;
       server_name  hanmk.com;
       location / {
       root /tmp/data/;
       autoindex on;
      }
   }
    server {
        listen    80 default_server;
        server_name demo.com ;
        location / {   # tomcat首页
        proxy_pass http://localhost:8080;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
       location /jenkins {                #tomcat部署jenkins
              proxy_pass  http://127.0.0.1:8080;
              proxy_set_header        Host $host;
              proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip
              proxy_connect_timeout   90;
              proxy_send_timeout      90;
              proxy_read_timeout      90;
              proxy_buffer_size       4k;
              proxy_buffers           4 32k;
              proxy_busy_buffers_size 64k;
              proxy_temp_file_write_size 64k;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip
              proxy_redirect          off;
       }
       location /ApprPhD {                #nodeJs服务器
              proxy_pass http://192.168.XXX.XXX:3030;
              proxy_set_header        Host $host;
              proxy_set_header        X-Real-IP $remote_addr;  #获取真实ip
              proxy_set_header REMOTE-HOST $remote_addr;
              proxy_connect_timeout   90;
              proxy_send_timeout      90;
              proxy_read_timeout      90;
              proxy_buffer_size       4k;
              proxy_buffers           4 32k;
              proxy_busy_buffers_size 64k;
              proxy_temp_file_write_size 64k;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip
              proxy_redirect          off;
       }
    }

설명:

첫 번째 서버에서 서비스를 server/tmp/data로 지정합니다. / path Static files;

두 번째 서버에서 서비스는 세 개의 라우팅 가상 머신을 가리킵니다(한 경로는 가상 머신에 로컬로 배포된 Tomcat 홈페이지를 가리키고, 다른 경로는 Tomcat에 배포된 Jenkins를 가리킵니다. 하나는 가상 머신에 배포된 다른 응용 프로그램을 가리킵니다)

두 서버 모두에 구성된 수신 포트는 80입니다(또한 테스트 결과를 더 잘 보기 위해)

server_name 지정됨(가상 호스트) 서버 이름은 일반적으로 도메인 이름(example.org, www.example.org)으로 구성되며 정확한 이름, 와일드카드 이름 또는 정규 표현식을 사용하여 정의할 수 있습니다. 외부 네트워크에서 요청 링크에 액세스하면 nginx는 입력한 호스트 이름을 사용하여 server1 또는 server2로 전달되는지 일치)

또한 테스트 결과를 더 잘 보기 위해 실제 도메인 이름을 입력하는 대신 server_name에 도메인 이름을 입력했습니다. 가상 머신의 ip 또는 localhost (ip 주소가 가상 머신 IP이기 때문에 IP 주소를 입력하면 nginx가 어떻게 요청을 전달하는지 알 수 없습니다) (또한 서버가 하나만 있는 경우에는 server_name을 입력해야 합니다. 결국 서버 아래의 서버로 전달되기 때문입니다. 포트가 정확하면 성공적으로 전달될 수 있습니다. )#🎜🎜 #

server1에 server_name 입력 hanmk.com

server2에 server_name 입력 🎜🎜#

위 구성을 완료한 후 nginx.conf 구성 파일을 다시 로드해야 합니다

2. 클라이언트의 호스트 파일을 구성합니다.

첫 번째 단계에서는 각각 hanmk.com과 deco.com이 server_name에 구성되어 있지만 도메인 이름 서비스가 활성화되지 않았기 때문에 이 두 도메인을 사용합니다. 클라이언트에서 직접 이름을 지정하여 요청을 보내는 것은 실패하므로 이 두 개의 가짜 도메인 이름을 정상적으로 사용할 수 있으려면 먼저 클라이언트 호스트에서 이를 구성해야 합니다.

hosts 파일을 열고 다음 두 줄을 추가합니다(IP 주소가 매핑되어 있으므로 동일하므로 두 도메인 이름을 한 줄에 로 구분하여 추가하면 됩니다). 공백)nginx가 요청을 처리하는 방법에 대한 자세한 예

3. Testnginx가 요청을 처리하는 방법에 대한 자세한 예

( 1) http://hanmk.com/을 사용하여 요청을 보내고 virtual machine/tmp/data/

경로 아래의 정적 파일에 액세스합니다. (2) http://demo.com/을 방문합니다. http: //demo.com/jenkins, http://demo.com/ApprPhD/index 각각 결과는 다음과 같습니다 nginx가 요청을 처리하는 방법에 대한 자세한 예

nginx가 요청을 처리하는 방법에 대한 자세한 예

nginx가 요청을 처리하는 방법에 대한 자세한 예

에서는 nginx가 접속 링크의 도메인 이름을 기준으로 해당 서버를 매칭한 후 위치 경로를 기준으로 해당 서비스로 라우팅한다고 설명합니다# 🎜🎜#

위 내용은 nginx가 요청을 처리하는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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