백엔드 개발 PHP 튜토리얼 Mac에서 nginx + tomcat7 로드 밸런싱

Mac에서 nginx + tomcat7 로드 밸런싱

Aug 08, 2016 am 09:24 AM
apache gt nbsp quot

1. Tomcat 설치:

Tomcat 공식 웹사이트(http://tomcat.apache.org/download-70.cgi)로 이동하여 해당 버전을 다운로드합니다.

지정된 디렉터리에 압축을 풉니다. :

localhost:tomcat rolin$ pwd

/Users/rolin/soft/tomcat #내 디렉터리

복사 1개 게재:

localhost:tomcat rolin$ ll

총 0

drwxr-xr-x 13 rolin 직원 442 5 15 23:43 apache-tomcat-7.0.62-1

drwxr-xr- x 13 rolin Staff 442 5 15 23:44 apache-tomcat-7.0.62-2

구성 파일 내용:

conf/server.xml

localhost:tomcat rolin$ cat apache-tomcat-7.0.62-1/conf/server.xml

<?xml version='1.0' 인코딩='utf- 8' ?>

<Server port="8006" shutdown="SHUTDOWN">

<Listener className=" org.apache.catalina.startup.VersionLoggerListener" />

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

<Listener className="org.apache.catalina.core.JasperListener" />

<Listener className="org. apache.catalina.core.JreMemoryLeakPreventionListener" />

<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />


< GlobalNamingResources>

<Resource name="UserDatabase" auth="Container"

type="org.apache.catalina. UserDatabase"

Description="업데이트하고 저장할 수 있는 사용자 데이터베이스"

Factory="org.apache.catalina.users.MemoryUserDatabaseFactory "

pathname="conf/tomcat-users.xml" />

</GlobalNamingResources>


<Service name="Catalina">

<커넥터 포트="8081 " 프로토콜 ="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8444" />

<Connector port="8010" 프로토콜="AJP/1.3"redirectPort="8444" />

<엔진 이름="Catalina" defaultHost= "localhost">

  <Realm className="org.apache.catalina.realm.LockOutRealm">

  &lt ;Realm className="org.apache.catalina.realm.UserDatabaseRealm"

                 resourceName="UserDatabase"/>

             </ 영역>

& lt; hst name = "localhost" appBase = "webapps"

unpackwars = "true" autodeploy = "true" & gt;

              패턴="%h %l %u %t "%r" %s %b" /> ;

</Host>

</Engine>

</ 서비스>

</Server>

localhost:tomcat rolin$ cat apache-tomcat-7.0.62-2/ conf/server.xml

<?xml version='1.0' 인코딩='utf-8'?>


< !--

하나 이상의

기여자 라이센스 계약에 따라 Apache Software Foundation(ASF)에 라이센스가 부여되었습니다.

저작권 소유에 관한 추가 정보는 이 저작물을 참조하세요.

  ASF는 Apache 라이센스 버전 2.0

("라이센스")에 따라 귀하에게 이 파일에 대한 라이센스를 부여합니다.

라이선스를 준수하지 않는 한 이 파일을 사용할 수 없습니다.  라이센스 사본은


      http://www.apache.org/licenses/LICENSE-에서 얻을 수 있습니다. 2.0


  관련 법률에서 요구하거나 서면으로 동의하지 않는 한, 소프트웨어

  라이선스에 따라 배포되는 것은 명시적이든 묵시적이든 어떤 종류의 보증이나 조건 없이 "있는 그대로"

  배포됩니다.

  라이선스에 따른 권한 및

제한 사항을 관리하는 특정 언어는 라이선스를 참조하세요.

-->

<!-- 참고:  "서버" 자체는 "컨테이너"가 아니므로

     "밸브"와 같은 하위 구성 요소를 정의할 수 없습니다. 이 수준에서.

     문서는 /docs/config/server.html

 -->

<Server port="8005" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />

  <!-- 보안 수신기입니다. 문서: /docs/config/listeners.html

  <Listener className="org.apache.catalina.security.SecurityListener" />

  -->

  <!--APR 라이브러리 로더. /docs/apr.html의 문서 -->

  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

  <!--웹앱이 로드되기 전에 Jasper를 초기화합니다. /docs/jasper-howto.html에 있는 문서 -->

  <Listener className="org.apache.catalina.core.JasperListener" />

  <!-- 특정 java/javax API 사용으로 인한 메모리 누수 방지-->

  <Listener className="org.apache. catalina.core.JreMemoryLeakPreventionListener" />

  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />


  < !-- 전역 JNDI 리소스

       /docs/jndi-resources-howto.html

에 있는 설명서 -->

  <GlobalNamingResources>

    <!--

에서도 사용할 수 있는 편집 가능한 사용자 데이터베이스 사용자를 인증하기 위한 UserDatabaseRealm

    -->

    <Resource name="UserDatabase" auth="Container"

              type="org.apache.catalina.UserDatabase"

              Description="업데이트하고 저장할 수 있는 사용자 데이터베이스"

> 🎜>

  </GlobalNamingResources>

  <!-- "서비스"는

       단일 "컨테이너"를 공유하는 하나 이상의 "커넥터" 참고:  "서비스" 자체는 "컨테이너"가 아닙니다.

       따라서 이 수준에서는 "밸브"와 같은 하위 구성 요소를 정의할 수 없습니다.

       문서는 /docs/config/service.html

에 있습니다. -->

  <서비스 이름="Catalina">

    <!--커넥터는 공유 실행기를 사용할 수 있으며 하나 이상의 명명된 스레드 풀을 정의할 수 있습니다.->

    <!--

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="150" minSpareThreads="4"/>

    -->



    <Connector port="8009" 프로토콜="AJP/1.3"redirectPort="8443" />

    <!-- 엔진은 <🎜를 처리하는 진입점(Catalina 내)을 나타냅니다. >

         모든 요청.  Tomcat 독립형

에 대한 엔진 구현은 요청에 포함된 HTTP 헤더를 분석하여

         적절한 호스트(가상 호스트).

         /docs/config/engine.html에 있는 문서 -->

    <!-- AJP를 통한 로드 밸런싱을 지원하도록 jvmRoute를 설정해야 합니다. 즉,

    <Engine name="Catalina" defaultHost="localhost" jvmRoute ="jvm1">

    -->

    <엔진 이름="Catalina" defaultHost="localhost">

      <!--클러스터링에 대해서는 다음 문서를 참조하세요.

          /docs/cluster-howto.html (간단한 방법)

          /docs/config/cluster.html(참조 문서) -->

      <!--

      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

      -->

      <!-- LockOutRealm을 사용하여 다음 시도를 방지합니다. 사용자 비밀번호 추측

           무차별 공격을 통해 -->

      <Realm className="org.apache.catalina.realm .LockOutRealm">

        <!-- 이 Realm은 "UserDatabase 키 아래의 글로벌 JNDI

리소스에 구성된 UserDatabase를 사용합니다. ".  이 UserDatabase에 대해 수행된 모든 편집

            은 즉시 Realm에서 사용할 수 있습니다

            .  -->

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourcesName="UserDatabase"/ >

      </Realm>

      <호스트 이름 ="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn 밸브, 웹 애플리케이션 간 인증 공유

             문서: /docs/config/valve.html -->

        <!--

        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

        -->

        <!-- 액세스 로그는 모두 처리합니다. example.

             설명서: /docs/config/valve.html

             참고: 사용된 패턴은 Pattern="common을 사용하는 것과 동일합니다. " -->

        <Valve className="org.apache.catalina.valves.AccessLogValve"directory="logs"

접두사="localhost_access_log." suffix=".txt"

               패턴="%h %l %u %t "%r" %s %b" />

</Host>

</Engine>

</Service> >

</Server>

시작:

./apache-tomcat-7.0.62-1/bin/startup.sh

./apache-tomcat-7.0.62-2/bin/startup.sh

주소:

http: //localhost:8081 /


고양이가 맞습니다.

2.nginx 설치:

Mac에서는 Brew를 사용하여 설치됩니다

brew: 설치하려면 sudo 권한이 필요합니다.

curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/ local --strip 1

nginx 설치 명령:

brew nginx 설치


버전 보기

nginx -V


nginx 구성

localhost:tomcat rolin$ cat /usr/local/etc/nginx/nginx.conf


#user none;

worker_processes 2;


#error_log 로그/error.log;

#error_log 로그/error.log 공지;

#error_log 로그/error.log 정보;


#pid 로그/nginx.pid;



이벤트{

작업자 연결 1024;

}



http {

include mime.types;

default_type 애플리케이션/octet-stream ;


#log_format main '$remote_addr - $remote_user [$time_local] "$request" '

> _for" ';

#access_log 로그/access.log main;


파일 보내기;

#tcp_nopush 켜기;

#keepalive_timeout 0;

keepalive_timeout 65;

#gzip on;


upstream localhost{ #여기에서 tomcat 주소를 구성하세요

> > }

서버 {

80; #nginx 수신 포트를 듣고 tomcat -r을 사용하여 반복하지 마세요.

        charset utf-8;


        #access_log logs/host.access.log main;


        위치 / {

            루트   html;

            index  index.html index.htm;

            Proxy_pass http://localhost;

            Proxy_set_header X-Real- IP $remote_addr;

            Proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            Proxy_redirect HOST default;

        }


        #error_page  404              /404.html;


        # 서버 오류 페이지를 정적 페이지로 리디렉션 /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            루트   html ;

        }


        # PHP 스크립트를 127.0.0.1에서 수신하는 Apache로 프록시합니다. :80

        #

        #location ~ .php$ {

        #    Proxy_pass   http: //127.0.0.1;

        #}


        # 통과 127.0.0.1:9000

        #

        #location ~ .php$ {

을 수신하는 FastCGI 서버에 대한 PHP 스크립트

        #    루트           html;

        #    fastcgi_pass   127.0.0.1:9000;

       #    fastcgi_index  index.php;

        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        #    include        fastcgi_params;

        #}



        # Apache의 경우 .htaccess 파일에 대한 액세스를 거부합니다. 문서 루트

        # nginx의 것과 일치합니다

        #

        #location ~ /.ht {

        #    모두 거부;

        #}

    }



    # IP, 이름 및 이름을 혼합하여 사용하는 또 다른 가상 호스트 포트 기반 구성

    #

    #server {

    #    듣기       8000;

    #    듣기       somename:8080;

    #    server_name  somename  별칭  another.alias;


    #    위치 / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}



    # HTTPS 서버

    #

    #server {

    #    듣기       443 ssl;

    #    server_name  localhost;


    #    ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;


    #    ssl_session_cache    shared:SSL:1m;

    #    ssl_session_timeout  5m;


    #    ssl_ciphers  HIGH:!aNULL:!MD5;

# ssl_prefer_server_ciphers on;


# 위치 / {

# 루트 html;

# 인덱스 인덱스 index.html index.htm;

# }

#}


}

포함 서버/ * ;



nginx 서비스 시작

sudo nginx


방문

브라우저 주소 표시줄: http://localhost/

nginx 서비스 종료

sudo nginx -s stop


위 내용은 관련 내용을 포함하여 Mac에서의 nginx + tomcat7 로드 밸런싱을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

C++는 프론트엔드인가요, 백엔드인가요? C++는 프론트엔드인가요, 백엔드인가요? Apr 22, 2024 pm 05:33 PM

C++는 프론트엔드인가요, 백엔드인가요?

PHP 프레임워크 성능 비교: 속도와 효율성의 궁극적인 대결 PHP 프레임워크 성능 비교: 속도와 효율성의 궁극적인 대결 Apr 30, 2024 pm 12:27 PM

PHP 프레임워크 성능 비교: 속도와 효율성의 궁극적인 대결

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

HTML 파일에서 URL을 생성하는 방법

회피 모듈은 애플리케이션 계층 DOS 공격으로부터 웹사이트를 보호합니다. 회피 모듈은 애플리케이션 계층 DOS 공격으로부터 웹사이트를 보호합니다. Apr 30, 2024 pm 05:34 PM

회피 모듈은 애플리케이션 계층 DOS 공격으로부터 웹사이트를 보호합니다.

golang 함수 동시성 제어 및 타사 라이브러리 통합 및 확장 golang 함수 동시성 제어 및 타사 라이브러리 통합 및 확장 Apr 25, 2024 am 09:27 AM

golang 함수 동시성 제어 및 타사 라이브러리 통합 및 확장

Java 동시 프로그래밍에서 동시성 테스트 및 디버깅을 수행하는 방법은 무엇입니까? Java 동시 프로그래밍에서 동시성 테스트 및 디버깅을 수행하는 방법은 무엇입니까? May 09, 2024 am 09:33 AM

Java 동시 프로그래밍에서 동시성 테스트 및 디버깅을 수행하는 방법은 무엇입니까?

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

Eclipse에서 서버를 추가하는 방법

58 초상화 플랫폼 구축에 알고리즘 적용 58 초상화 플랫폼 구축에 알고리즘 적용 May 09, 2024 am 09:01 AM

58 초상화 플랫폼 구축에 알고리즘 적용

See all articles