찾다
운영 및 유지보수엔진스Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

1) 물론 사용하려는 소프트웨어를 다운로드해야 합니다. 다음 단계를 보려면 nginx 공식 웹사이트로 이동하세요. http://nginx.org/en/download.html은 여기에서 찾을 수 있습니다. 현재 제가 사용하고 있는 버전은 1.1.7 이지만 기본적으로 향후 버전은 모두 호환이 가능하고, 저희가 사용하고 있는 버전도 너무 저급한 부분은 포함하지 않으므로 변경사항은 없을 것입니다. 여기서는 Windows이므로 당연히 Windows 버전을 다운로드합니다. 다운로드한 후 먼저 시작해야 합니다. nginx 폴더에 들어가서 nginx를 직접 시작하세요. 예를 들어 다운로드 후 d:softwaredevelopertoolsservernginx-1.1.7에 넣고, 직접 cmd한 다음 cd d:softwaredevelopertoolsservernginx-1.1.7로 들어가는데, 명령줄에 익숙하지 않은 분들은 안 가서 놀라실 수도 있어요. 그 폴더. Windows는 사용자가 직접 지정하지 않는 한 파티션 사이를 이동하지 않습니다. 따라서 우리는 다음과 같이 직접 d:

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

그런 다음 nginx를 직접 시작합니다. 여기에서 Tomcat 사용 경험에 따르면 깜박이는 창이 나타날 수 있습니다. 오류죠. 그렇죠? 하지만 그렇지 않습니다.

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

이때 작업 관리자를 열면 두 개의 nginx.exe가 보입니다. 이는 우리가 이미 시작했음을 보여줍니다. 그 이유에 대해서는 여기서는 자세히 다루지 않겠습니다.

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

이제 nginx를 시작했으므로 tomcat을 시작할 수 있습니다. http://localhost에 액세스하여 tomcat에 직접 액세스하는 것을 생각해 보세요. 걱정하지 마세요. 시작한 후 nginx가 어떤 모습인지 살펴보겠습니다. http://localhost에 직접 액세스하면 다음을 볼 수 있습니다.

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

nginx가 성공적으로 시작된 것을 볼 수 있으며 이제 nginx 디렉토리에 직접 액세스할 수 있습니다. 그렇다면 실제로는 어디에 구성되어 있습니까? 여기에는 nginx의 중요한 구성 파일인 nginx.conf가 포함됩니다.
2) nginx 폴더에 여러 파일이 포함된 conf 폴더가 있음을 알 수 있습니다. 다른 파일과 관계없이 nginx.conf를 열면 다음 섹션이 표시됩니다.

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

이 코드는 server 는 프록시 서버와 동일하며 물론 여러 서버를 구성할 수 있습니다. 주의 깊게 분석해 보겠습니다. 수신: 현재 프록시 서버가 수신하는 포트를 나타냅니다. 기본값은 포트 80을 수신하는 것입니다. 여러 서버를 구성하는 경우 리스너를 다르게 구성해야 합니다. 그렇지 않으면 어디로 이동할지 결정할 수 없습니다. server_name: 청취 후 갈 곳을 나타냅니다. 이때는 nginx 폴더로 바로 이동합니다. location: 일치하는 경로를 나타냅니다. /가 구성되면 모든 요청이 여기에서 일치된다는 의미입니다. Root: 루트가 구성되면 이 요청의 경로가 일치하면 해당 파일이 이 폴더에서 발견된다는 의미입니다. .여기는 나중에 정적 파일을 제공하는 데 유용합니다. index: 홈 페이지가 지정되지 않은 경우 기본적으로 지정된 파일이 선택됩니다. 여러 개의 파일이 있을 수 있으며 첫 번째 파일이 없으면 두 번째 파일이 검색됩니다. 아래 error_page는 해당 오류를 나타내는 페이지이므로 여기서는 당분간 사용하지 않을 예정입니다.
그런 다음 구체적인 구성과 localhost에 액세스할 때 tomcat으로 전환하는 방법을 알아냈습니다. 실제로 두 곳만 수정되었습니다.

server_name localhost:8080;  
location / {  proxy_pass http://localhost:8080}

위의 두 곳을 수정했습니다. 내 Tomcat은 포트 8080에 있습니다. 필요에 따라 수정할 수 있습니다. 여기에는 이전에 지정해야 하는 루트와 달리 전달과 동일한 프록시 경로를 나타내는 새로운 요소인 Proxy_pass가 있습니다. 이제 파일을 수정했으니 nginx를 종료했다가 다시 시작해야 한다는 뜻인가요? 실제로 그럴 필요는 없습니다. nginx가 파일을 다시 로드할 수 있습니다. 직접 실행했습니다: nginx -s reload
너무 일찍 오류를 발견했습니다:

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

무엇에서 오류가 발견되었나요? 해당 라인}을 자세히 살펴보니 우리가 추가한 Proxy_pass가 매우 이상합니다. ";"로 끝나지 않는 문제입니다. 직접 수정한 후 다시 실행해 보니 오류가 없습니다. 괜찮아. 직접 로드하고 싶지 않고 구성 파일에 문제가 있는지 확인하고 싶다면 nginx -t
이렇게 하면 구성 파일에 오류가 있는지 확인할 수 있습니다. 아래의 모든 수정 사항은 수정이 완료된 후 구성 파일을 다시 로드하기 위해 nginx -s reload를 실행한다고 가정합니다.
모든 것이 정상입니다. 그런 다음 http://localhost를 다시 열면 다음 페이지가 표시됩니다.

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

这时,我们发现它并不是刚才的welcome页面了,而是tomcat的管理页面了,不管我们点击什么链接都是没问题的,相当于直接访问http://localhost:8080一样。
3)上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理jsp,而html,js,css这些不需要处理的,直接给nginx进行缓存。下面我们来进行一下配置,让jsp页面直接给tomcat,而html,png等一些图片和js等直接给nginx进行缓存。这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难:

location ~ .jsp$ {    proxy_pass http://localhost:8080;}  
location ~ .(html|js|css|png|gif)$ {  root d:/software/developertools/server/apache-tomcat-7.0.8/webapps/root;} 
location ~ .jsp$ {    proxy_pass http://localhost:8080;} 
location ~ .(html|js|css|png|gif)$ {  root d:/software/developertools/server/apache-tomcat-7.0.8/webapps/root;}

  我们先要去掉之前配的location /,避免全部请求被拦截了。然后我们再来看看http://localhost

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

当我们不指定jsp页面的时候,它会出现找不到,因为,此时并没有相应的location匹配,所以就会有404错误,这时就跳到了nginx自定义的error页面去了。而当我们用http://localhost/index.jsp去访问时,我们看到了熟悉的页面:

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

而且图片那些都显示正常,因为图片是png的,所以直接在tomcat/webapps/root目录下直接查找,当然,如果我们点击manager application how-to这个链接,我们发现:

Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법

它还是找不到,为什么呢?因为这是个html页面,但它并不在root目录下,而是在docs目录下,但当我们匹配html时,我们却到root目录下去找,所以还是找不到这个页面。
一般情况下,如果我们需要用nginx来进行静态文件伺服,一般都会把所有静态文件,html,htm,js,css等都放在同一个文件夹下,这样就不会有tomcat这样的情况了,因为tomcat下的是属于不同的项目,这个我们就没办法了。
3)有些人会说,这些都只会找一台服务器,但如果我们想在一台服务器挂了的时候,自动去找另外一台,这怎么办?这实际上nginx都考虑到了。这时,我们之前用的proxy_pass就有大用途了。我们把之前的第一个例子,即全部都代理的修改一下:最后修改如下:

upstream local_tomcat {  server localhost:8080;}  
server{    location / {      proxy_pass http://local_tomcat;    }  
  ##......其他省略
}  
upstream local_tomcat {  server localhost:8080;} 
server{    location / {      proxy_pass http://local_tomcat;    } 
  #......其他省略
}

  我们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。我们还是直接来http://localhost,还是和第一个一样的效果,所有链接都没问题,说明我们配置正确。upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加。我们刚才说可以在一个服务器挂了的情况下连到另外一个,那怎么弄呢?其实很简单,在upstream中的local_tomcat中配置多一个server。比如我现在弄多一个jetty,端口在9999,所以我们配置如下:

upstream local_tomcat {  server localhost:8080;  server localhost:9999;}  
upstream local_tomcat {  server localhost:8080;  server localhost:9999;}

  此时,我们关闭tomcat,而只开jetty。我们来运行http://localhost看看效果:  我们看到它请求到了jetty的页面,但由于jetty的机制,这时没有显示jetty主页,这个我们先不管。但我们的在一个服务器挂的情况下自动使用另外一个的功能实现了。
但有时我们就不想它挂的时候访问另外一个,而只是希望一个服务器访问的机会比另外一个大,这个可以在server最后加上一个weight=数字来指定,数字越大,表明请求到的机会越大。 

upstream local_tomcat {  server localhost:8080 weight=1;  server localhost:9999 weight=5;}  
upstream local_tomcat {  server localhost:8080 weight=1;  server localhost:9999 weight=5;}

 这时我们给了jetty一个更高的权值,让它更有机会访问到,实际上当我们刷新http://localhost访问的时候发现jetty访问机率大很多,tomcat几乎没机会访问,一般情况下,如果我们必须这样用,不要相关太大,以免一个服务器负载太大。当然,server还有一些其他的元素,比如down表示暂时不用到该服务器等等。

위 내용은 Tomcat 서버의 역방향 프록시로 Nginx를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Nginx의 주요 기능 : 성능, 확장 성 및 보안Nginx의 주요 기능 : 성능, 확장 성 및 보안Apr 13, 2025 am 12:09 AM

NGINX는 이벤트 중심 아키텍처 및 비동기 처리 기능을 통해 성능을 향상시키고 모듈 식 설계 및 유연한 구성을 통해 확장 성을 향상 시키며 SSL/TLS 암호화 및 요청 속도 제한을 통해 보안을 향상시킵니다.

Nginx vs. Apache : 웹 호스팅 및 트래픽 관리Nginx vs. Apache : 웹 호스팅 및 트래픽 관리Apr 12, 2025 am 12:04 AM

NGINX는 동시성이 높은 자원 소비 시나리오에 적합하지만 APACHE는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 고성능과의 많은 동시 연결을 처리하는 것으로 알려져 있습니다. 2. Apache는 안정성과 풍부한 모듈 지원으로 유명합니다. 선택할 때는 특정 요구에 따라 결정해야합니다.

NGINX : 최신 웹 애플리케이션을위한 다목적 도구NGINX : 최신 웹 애플리케이션을위한 다목적 도구Apr 11, 2025 am 12:03 AM

nginxissentialderformodernwebapplicationsduetoitsrolessareareverseproxy, loadbalancer 및 Webserver, HighperformanceAndscalability를 제공합니다

Nginx SSL/TLS 구성 : HTTPS로 웹 사이트 보안Nginx SSL/TLS 구성 : HTTPS로 웹 사이트 보안Apr 10, 2025 am 09:38 AM

Nginx를 통해 웹 사이트 보안을 보장하려면 다음 단계가 필요합니다. 1. 기본 구성을 만들고 SSL 인증서 및 개인 키를 지정하십시오. 2. 구성 최적화, HTTP/2 및 OCSPStapling 활성화; 3. 인증서 경로 및 암호화 제품군 문제와 같은 공통 오류 디버그; 4. Let 'sencrypt 및 세션 멀티플렉싱 사용과 같은 응용 프로그램 성능 최적화 제안.

Nginx 인터뷰 질문 : ACE 귀하의 DevOps/System Admin 인터뷰Nginx 인터뷰 질문 : ACE 귀하의 DevOps/System Admin 인터뷰Apr 09, 2025 am 12:14 AM

NGINX는 고성능 HTTP 및 리버스 프록시 서버로 높은 동시 연결을 처리하는 데 능숙합니다. 1) 기본 구성 : 포트를 듣고 정적 파일 서비스를 제공합니다. 2) 고급 구성 : 리버스 프록시 및로드 밸런싱을 구현하십시오. 3) 디버깅 기술 : 오류 로그를 확인하고 구성 파일을 테스트하십시오. 4) 성능 최적화 : GZIP 압축을 활성화하고 캐시 정책을 조정합니다.

Nginx 캐싱 기술 : 웹 사이트 성능 향상Nginx 캐싱 기술 : 웹 사이트 성능 향상Apr 08, 2025 am 12:18 AM

Nginx 캐시는 다음 단계를 통해 웹 사이트 성능을 크게 향상시킬 수 있습니다. 1) 캐시 영역을 정의하고 캐시 경로를 설정하십시오. 2) 캐시 유효성 기간 구성; 3) 다른 컨텐츠에 따라 다른 캐시 정책을 설정합니다. 4) 캐시 저장 및로드 밸런싱을 최적화합니다. 5) 캐시 효과를 모니터링하고 디버그합니다. 이러한 방법을 통해 NGINX 캐시는 백엔드 서버 압력을 줄이고 응답 속도 및 사용자 경험을 향상시킬 수 있습니다.

Docker와 Nginx : 컨테이너화 된 응용 프로그램을 배포하고 스케일링합니다Docker와 Nginx : 컨테이너화 된 응용 프로그램을 배포하고 스케일링합니다Apr 07, 2025 am 12:08 AM

dockercompose를 사용하면 Nginx의 배포 및 관리를 단순화 할 수 있으며 Dockerswarm 또는 Kubernetes를 통한 스케일링은 일반적인 관행입니다. 1) DockerCompose를 사용하여 Nginx 컨테이너를 정의하고 실행하십시오. 2) Dockerswarm 또는 Kubernetes를 통한 클러스터 관리 및 자동 스케일링 구현.

고급 NGINX 구성 : 서버 블록 마스터 링 및 리버스 프록시고급 NGINX 구성 : 서버 블록 마스터 링 및 리버스 프록시Apr 06, 2025 am 12:05 AM

NGINX의 고급 구성은 서버 블록 및 리버스 프록시를 통해 구현 될 수 있습니다. 1. 서버 블록을 사용하면 여러 웹 사이트를 한쪽으로 실행할 수있게되면 각 블록은 독립적으로 구성됩니다. 2. 리버스 프록시는 요청을 백엔드 서버로 전달하여로드 밸런싱 및 캐시 가속도를 실현합니다.

See all articles

핫 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를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경