> 운영 및 유지보수 > 리눅스 운영 및 유지 관리 > Tomcat 및 Nginx의 서버 배포

Tomcat 및 Nginx의 서버 배포

大家讲道理
풀어 주다: 2017-07-15 11:38:35
원래의
1854명이 탐색했습니다.

1. 준비

 먼저 Linux 서버가 필요하고 사용자 이름과 비밀번호를 알아야 합니다. 그런 다음 Linux 서버에 연결할 수 있는 두 가지 도구인 Xshell 5와 Xftp 5를 설치해야 합니다. 설치 튜토리얼에 대해서는 할 말이 없습니다. 보충 그림에서는 서버에 연결하는 방법을 설명합니다:

xshell 연결 인터페이스는 다음과 같습니다. 호스트 IP를 입력하고 확인을 클릭하면 xshell이 ​​해당 서버에 들어갈 수 있는 창을 띄웁니다. 성공적으로 연결하려면 사용자 이름과 비밀번호를 사용하세요!

  

   공백만 채우면 됩니다. 여기서는 FTP 대신 SFTP를 선택하는 이유를 자세히 설명하지 않겠습니다. 그것에!

 

2. 설치 및 배포 작업

 Linux 서버에 프로젝트를 배포하려면 jdk와 tomcat을 설치하는 것이 필수적입니다. 서버가 있을 경우 여기서 강조해야 할 점은 다음과 같습니다. 여러 애플리케이션을 배포하려면 Tomcat의 구성이 애플리케이션마다 확실히 다르기 때문에 각 애플리케이션에 대해 고유한 Tomcat이 있어야 합니다. 이 경우 Tomcat 설치 디렉터리와 애플리케이션 아래에 여러 Tomcat의 작업 디렉터리를 설치할 수 있습니다. Tomcat의 설치 디렉터리를 동일한 부분에 대해 공유할 수 있습니다. 다음은 서버에 Tomcat 및 jdk를 설치하는 방법과 작동 방법을 자세히 소개합니다. 아래와 같이 새 디렉터리를 만들 수 있습니다. 이 디렉터리 아래에는 프로젝트 시작 및 배포 액세스와 관련된 일부 파일이 배치되어 있습니다. 이 디렉터리에는 여러 버전의 Tomcat이 있습니다. 및 jdk는 프로젝트 배포 프로세스 중에 사용되며 구성을 통해 실현될 수 있습니다.

     실제 애플리케이션의 경우 인스턴스 디렉터리에 넣고 각 애플리케이션의 이름을 설정한 다음 해당 디렉터리 아래에 해당 war 패키지와 압축 해제된 파일을 배치하고 tomcat이 읽을 때까지 기다립니다. 여기에 애플리케이션을 배포합니다.

2. 구성 수정  

또한 관리하기 쉽도록 Tomcat을 아래와 같이 디렉토리에 배치하지만 각 항목에 주의해야 합니다. Tomcat 구성

/bin 디렉터리에 start.sh 파일과 stop.sh 파일을 수정해야 합니다. 먼저 환경 변수 구성과 마찬가지로 jdk 경로를 지정해야 하며 두 번째로 tomcat을 지정해야 합니다. 작업 디렉터리 Tomcat 경로를 보면 CATALINA_HOME과 CATALINA_BASE가 각각 Tomcat의 설치 디렉터리와 작업 디렉터리에 해당한다는 것을 알 수 있습니다. 그런 다음 마지막 줄에서 설치 디렉터리 아래의 start.sh를 사용하여 프로젝트가 시작되는 것을 볼 수 있지만 Tomcat 구성 파일은 다음과 같습니다. 프로젝트를 시작하는 데 사용되는 각 애플리케이션 Tomcat에서 구성하는 구성 파일입니다. stop.sh도 마찬가지입니다.

 xshell을 사용하여 ./start.sh 및 ./stop.sh를 실행하려면 권한이 필요합니다. 권한이 없으면 xftp를 사용하여 start.sh 이메일에 대한 권한을 수정할 수 있습니다. 그림을 선택하세요.

  

  /conf 디렉토리에서 수정된 구성에 주의해야 합니다. 첫 번째는 서버가 점유되어 시작할 수 없는 경우 구성된 Tomcat의 포트 번호를 기억하는 것이 가장 좋습니다. 이 애플리케이션에서는 나중에 포트 매핑을 위해 nginx를 사용할 때 사용됩니다.

 

 수정할 또 다른 위치는 Catalina 디렉토리 아래 localhost 디렉토리에 있는 ROOT.xml 파일입니다. 이 파일은 tomcat이 시작될 때 프로젝트 인스턴스를 로드할 디렉토리를 지정하는 데 사용됩니다. 디렉터리, /webapps 디렉터리, /work 디렉터리는 수정할 필요가 없습니다. 위에서 볼 수 있듯이 디렉터리 구분이 매우 명확하며 서비스 설치 디렉터리(jdk, tomcat, nginx 등)로 구분됩니다. 애플리케이션 예제 디렉터리는 물론 애플리케이션 배포 디렉터리도 Linux 서버를 사용하여 여러 프로젝트를 배포할 때 이러한 방식으로 나눌 수 있습니다.

 

3.nginx는 포트 80 역방향 프록시를 구현합니다.

논리적으로 말하면, 이때 우리는 자체 애플리케이션의 war 패키지를 해당 디렉터리로 전송하여 압축을 풀고 해당 디렉터리로 이동할 수 있습니다. 애플리케이션 Tomcat 작업 디렉터리에서 ./start.sh를 실행하여 프로젝트를 시작하세요! 먼저 시도해 볼 수도 있습니다. 프로젝트가 배포된 후 호스트를 구성하고 액세스를 시작합니다. 이때 위에서 구성한 tomcat 포트 번호를 추가해야 액세스할 수 있습니다. 기본 80 포트) 액세스? 위에서 언급했듯이 우리는 Tomcat마다 다른 포트 번호를 구성했습니다. 그 이유는 하나의 Tomcat에서만 사용할 수 있기 때문입니다. 이는 프로젝트 액세스가 각 Tomcat에 대해 수행되어야 함을 의미합니다. nginx를 설치한 후 일부 구성을 추가하여 다른 애플리케이션에서 사용하는 포트 80에 대한 액세스를 해당 포트로 전달할 수 있습니다. tomcat의 관점에서 볼 때 외부 요청은 여전히 ​​tomcat에서 구성한 포트 번호를 사용하며, 이는 우리가 원하는 효과를 달성합니다. 구체적인 구성은 다음과 같습니다(물론 해당 디렉토리 분할 작업도 수행해야 합니다):

nginx 디렉터리는 다음과 같습니다.

  

  /conf 디렉터리 아래의 nginx.conf 구성 파일만 신경 쓰면 됩니다. 또한 모든 사람이 볼 수 있도록 특정 구성 정보도 열었습니다. , "include domains /*", /domains 디렉터리의 모든 구성 파일을 포함하여 구성이 아직 완료되지 않았음을 나타냅니다.

  

  이때 각 애플리케이션의 해당 nginx 구성을 파일로 구성할 수 있습니다.

  

  그럼 어떻게 구성하는지 살펴보겠습니다. 구성에서 예, http_500 http_502 http_504 등과 같은 일부 비정상적인 상태의 경우 일반적으로 웹사이트 등의 홈페이지로 이동하여 기록되고 처리된다는 것을 알 수 있습니다. ., 그런 다음 로그를 기록합니다. 이 구성 파일을 구성한 후에는 새 로그 디렉터리를 생성해야 합니다. 그렇지 않으면 nginx가 디렉터리를 찾을 수 없으며 시작할 때 오류가 보고됩니다.

  

  이 작업을 완료한 후에도 nginx를 다시 시작해야 합니다. 다시 시작하는 방법에 대해서는 자세히 설명하지 않겠습니다. , 어려운 조치를 취하고 nginx 프로세스를 종료한 다음 nginx 서비스 시작 명령을 사용하여 nginx 서비스를 시작하겠습니다.

이 작업을 마친 후 (포트 번호를 추가하지 않고) 익숙한 방법을 사용하여 액세스할 수 있습니까? 예, 그렇습니다. Tomcat이 애플리케이션을 다시 배포해야 하는지 걱정하는 경우가 많습니다. 우리가 처음 방문하는 도메인 이름은 우리가 구성한 호스트를 통해 DNS 확인을 수행하고, 해당 IP로 변환한 후, 해당 IP에 해당하는 서버를 찾아준다. 그런 다음 서버에서 Nginx를 구성할 때 Nginx는 먼저 요청을 가로채고 요청을 처리 및 배포한 다음 마지막으로 해당 tomcat에 도달합니다(개인적인 이해이므로 잘 이해하지 못할 수도 있으므로 불평하지 마십시오). 우리는 도메인 이름에 액세스하고 자신있게 요청을 보낼 수 있습니다! !

 4. 구덩이를 밟으세요

 어. . 안 좋아! ! 너무 기뻐서 홈 페이지로 이동했지만 여전히 지정된 애플리케이션에 액세스할 수 없습니다. 포트 번호를 추가하려고 했더니 "기적적으로" 액세스할 수 있었습니다. 이는 우리가 구성한 Nginx가 적용되지 않았음을 의미합니다. 문제는 무엇입니까?

아래에서 내 문제 해결 아이디어에 대해 이야기하겠습니다. 먼저 모든 요청이 Nginx로 이동했는지 확인해야 합니다. 포트 80을 사용하여 애플리케이션에 액세스하면, 가서 한 번, 두 번, 세 번 보세요. . 로그가 없습니다. 현재로서는 Nginx 서비스가 전혀 사용되지 않았다고 대략적으로 결론을 내릴 수 있습니다. 아마도 로그 구성에 문제가 있는지 확인할 수 없습니다. 이때 nginx 서비스 접속을 끄거나, 해당 웹사이트의 홈페이지로 점프하는 과감한 조작을 했습니다. nginx를 통해 구성된 홈페이지로 점프하지 않나요? 사실 회사에서는 이미 네트워크 계층에서 처리해 놓았는데, 이때는 매우 혼란스러웠습니다. 단지 Tomcat 구성을 수정하고 애플리케이션 중 하나를 포트 80으로 구성하는 것이 나을 수도 있었습니다. 이제 곧 수정이 완료되고, Nginx 서비스가 종료되었기 때문에 주소창에 도메인 이름이 입력될 때까지 기다리시면 됩니다. tomcat으로 직접 전송됩니다. 접속이 1번, 2번, 3번씩 되는데 신기하게도 접속이 안되네요. ? ? 이때 순간적으로 영감이 떠올랐습니다. 서버 방화벽이 포트 80을 비활성화했기 때문일 것입니다. 로컬에서 192.168.108.37 80에 재빨리 접속할 수 없다는 사실이 밝혀졌습니다. 이번에는 처리하기 쉬웠습니다. 포트 80에 대한 액세스만 있으면 CentOS에서 포트 80을 열 수 있도록 구성하는 방법을 추가하겠습니다.

  1. iptables 구성 파일을 엽니다. 코드는 다음과 같습니다. vi /etc/sysconfig/iptables

  2. /etc/init.d/iptables 상태 명령을 사용하여 포트 80이 연결되어 있는지 확인합니다. 그렇지 않은 경우 두 가지 방법으로 처리할 수 있습니다

  3. 첫 번째 방법: vi /etc/sysconfig/iptables 명령을 수정하여 포트 80을 열도록 방화벽을 추가합니다. 코드는 다음과 같습니다.

 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
로그인 후 복사

  4. 방화벽 닫기/활성화/다시 시작 코드는 다음과 같습니다: /etc/init.d/iptables stop (#start, #restart)

5. 두 번째 방법: 명령을 통해 포트를 추가합니다. , 코드는 다음과 같습니다:

[root@centos httpd]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@centos httpd]# /etc/rc.d/init.d/iptables save
[root@centos httpd]# /etc/init.d/iptables restart
로그인 후 복사

6. 효과 확인: [root@centos httpd]# /etc/init.d/iptables status

 7. 한 문장을 추가하는 것이 좋습니다. 작동이 간단하고 성공률이 높은 두 번째 방법을 사용합니다. 첫 번째 방법을 사용하여 방화벽 구성을 수정했을 때 두 번째 방법을 사용했을 때 다시 시작이 실패했습니다. 성공

III. 요약

  최종 결과는 예상한 대로였습니다. Tomcat이 1605 포트로 구성되었더라도 여전히 포트 80을 사용하여 액세스할 수 있습니다. 이것이 nginx의 힘입니다. 몇 메가바이트의 설치 패키지가 실제로는 정말 많은 역할을 할 수 있습니다. 이때는 nginx를 배우기 시작한 지 얼마 되지 않아 이해가 매우 초보적인 수준이지만, 이 시간을 통해 연습을 통해 nginx를 좋아하게 되었고, 천천히 서로를 알아가게 되었습니다. 지인으로부터 (서로를 알 수는 없지만).


위 내용은 Tomcat 및 Nginx의 서버 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿