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

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

May 21, 2023 pm 07:01 PM
nginx tomcat

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으로 문의하세요.

핫 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 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Tomcat에 여러 프로젝트를 배포하는 방법 Tomcat에 여러 프로젝트를 배포하는 방법 Apr 21, 2024 am 09:33 AM

Tomcat을 통해 여러 프로젝트를 배포하려면 각 프로젝트에 대한 webapp 디렉터리를 생성한 후 다음을 수행해야 합니다. 자동 배포: webapp 디렉터리를 Tomcat의 webapps 디렉터리에 배치합니다. 수동 배포: Tomcat의 관리자 애플리케이션에서 프로젝트를 수동으로 배포합니다. 프로젝트가 배포되면 해당 배포 이름(예: http://localhost:8080/project1)으로 액세스할 수 있습니다.

Tomcat 웹사이트의 루트 디렉터리는 어디에 있나요? Tomcat 웹사이트의 루트 디렉터리는 어디에 있나요? Apr 21, 2024 am 09:27 AM

Tomcat 웹사이트 루트 디렉터리는 Tomcat의 webapps 하위 디렉터리에 있으며 웹 애플리케이션 파일, 정적 리소스 및 WEB-INF 디렉터리를 저장하는 데 사용됩니다. Tomcat 구성 파일에서 docBase 속성을 찾아 찾을 수 있습니다.

Tomcat에서 도메인 이름을 구성하는 방법 Tomcat에서 도메인 이름을 구성하는 방법 Apr 21, 2024 am 09:52 AM

도메인 이름을 사용하도록 Tomcat을 구성하려면 다음 단계를 수행하십시오. server.xml 백업을 생성하십시오. server.xml을 열고 Host 요소를 추가하고 example.com을 도메인 이름으로 바꿉니다. 도메인 이름에 대한 SSL 인증서를 생성합니다(필요한 경우). server.xml에 SSL 커넥터를 추가하고 포트, 키 저장소 파일 및 비밀번호를 변경하십시오. server.xml을 저장합니다. 톰캣을 다시 시작하세요.

HTML 파일에서 URL을 생성하는 방법 HTML 파일에서 URL을 생성하는 방법 Apr 21, 2024 pm 12:57 PM

HTML 파일을 URL로 변환하려면 다음 단계를 포함하는 웹 서버가 필요합니다. 웹 서버를 얻습니다. 웹 서버를 설정합니다. HTML 파일을 업로드하세요. 도메인 이름을 만듭니다. 요청을 라우팅합니다.

Tomcat에서 문자가 왜곡되는 이유 Tomcat에서 문자가 왜곡되는 이유 Apr 21, 2024 am 10:18 AM

Tomcat 문자가 왜곡되는 이유: 1. 문자 집합 불일치, 2. HTTP 응답 헤더가 올바르게 설정되지 않음, 3. 필터 또는 인코더 구성 오류, 4. 웹 페이지 인코딩이 잘못됨, 5. 기타 이유(서버 측 언어, 데이터베이스 포함) 인코딩 및 프록시 서버 문제).

Eclipse에서 서버를 추가하는 방법 Eclipse에서 서버를 추가하는 방법 May 05, 2024 pm 07:27 PM

Eclipse에 서버를 추가하려면 다음 단계를 수행하십시오. 서버 런타임 환경 생성 서버 구성 서버 인스턴스 생성 서버 런타임 환경 선택 서버 인스턴스 구성 서버 배포 프로젝트 시작

Tomcat 최대 연결 수 및 최대 스레드 수 Tomcat 최대 연결 수 및 최대 스레드 수 Apr 21, 2024 am 09:22 AM

최대 Tomcat 연결 수는 동시에 연결되는 클라이언트 수를 제한하고, 최대 스레드 수는 동시에 요청을 처리할 수 있는 스레드 수를 제한합니다. 이러한 제한은 서버 리소스 고갈을 방지하고 서버 용량 및 로드와 일치하도록 server.xml의 maxConnections 및 maxThreads 속성을 설정하여 구성됩니다.

PHP를 사용하여 웹사이트를 배포하고 유지하는 방법 PHP를 사용하여 웹사이트를 배포하고 유지하는 방법 May 03, 2024 am 08:54 AM

PHP 웹 사이트를 성공적으로 배포하고 유지하려면 다음 단계를 수행해야 합니다. 웹 서버(예: Apache 또는 Nginx) 선택 PHP 설치 데이터베이스 생성 및 PHP 연결 서버에 코드 업로드 도메인 이름 및 DNS 모니터링 웹 사이트 유지 관리 설정 단계에는 PHP 및 웹 서버 업데이트, 웹 사이트 백업, 오류 로그 모니터링 및 콘텐츠 업데이트가 포함됩니다.

See all articles