Apache 이후 nginx를 프록시로 설치

Apache 이후 nginx를 프록시로 설치

Debian wheezy 서버에 nginx를 프록시로 설치하는 경우 모든 정적 콘텐츠가 nginx에서 직접 전달되도록 Apache 구성을 변경하려면 어떤 단계를 수행해야 합니까?

내 서버에는 이미 약 250개의 도메인이 실행 중이며 이 문제를 해결하기 위해 nginx를 통해 모든 것을 다시 라우팅하는 것을 고려하고 있습니다. apache2.2는 막힘을 방지하기 위해 1024보다 강력한 DH 암호를 사용할 수 없습니다.

답변1

Nginx 뒤의 Apache가 프록시 및 정적 콘텐츠 서버로 작동하도록 하려면 다음 두 가지 솔루션이 있습니다.

1.static.yoursite.asd와 같은 정적 콘텐츠에 대해서만 새 하위 도메인을 만들 수 있습니다. 물론 DNS 레코드를 수정하라는 메시지가 표시됩니다(수행 방법은 다음과 같습니다).http://content.websitegear.com/article/subdomain_setup.htm). Nginx 구성 파일에는 2개의 서버 블록이 필요합니다. 하나는 정적 콘텐츠를 제공하는 데 사용되고 다른 하나는 트래픽을 Apache로 리디렉션하는 데 사용됩니다. 정적 콘텐츠에 대한 서버 블록은 다음과 같습니다.

server {
    listen 80;

    server_name static.localhost;

    location / {
        root /path/to/static/content;
        # 404 if file does not exist
        try_files $uri $uri/ =404;
    }
}

다음은 트래픽을 Apache로 리디렉션하는 샘플 서버 블록입니다. (Apache가 포트 8000에서 작동한다고 가정)

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    location / {
        proxy_pass http://localhost:8000;
    }
}

2.Nginx에 서버 블록이 있을 수 있지만 두 개의 다른 위치를 사용할 수 있습니다. DNS 레코드를 수정할 필요가 없기 때문에 노력이 덜 듭니다. yoursite.asd/static/ 에 정적 파일을 배치하고 루트 위치( yoursite.asd/ )에 있는 Apache로 리디렉션한다고 가정합니다.

정적 콘텐츠를 제공하는 위치의 예는 다음과 같습니다.

location /static/ {
        root /path/to/content;
        # we don't want to have static files only in folder "static" in 
        # root document, so let's rewrite it to our root document
        rewrite ^/static/(.*)$ /$1 break;
}

다음은 포트 8000에서 Apache로 트래픽을 리디렉션하는 위치의 예입니다.

location / {
        proxy_pass http://localhost:8000;
}

관련 정보