2013-03-30 3 views
0

nginx 패턴 일치 정규 표현식을 개선하는 데 도움이 필요합니다.Nginx/Apache Serve 정적 컨텐츠 프록시

# serve static files from nginx 
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|pdf|ppt|txt|tar|wav|bmp|rtf|js|mp3|avi|mov|flv|swf)$ { 
root c:/websites/www/html; 
expires 1y; 
} 


# pass requests for dynamic content to apache listening on 8080 
location/{ 
proxy_pass http://127.0.0.1:8080; 
proxy_redirect off; 
proxy_set_header Host $host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
client_max_body_size 128m; 
client_body_buffer_size 256k; 
proxy_connect_timeout 60; 
proxy_send_timeout 60; 
proxy_read_timeout 60; 
proxy_buffer_size 4k; 
proxy_buffers 32 256k; 
proxy_busy_buffers_size 512k; 
proxy_temp_file_write_size 512k; 
} 

Apache는 포트 8080에서 실행되고 nginx는 포트 80에서 실행됩니다. Apache가 처리하는 유일한 방법은 HTML, PHP 및 기본적으로 스크립트 처리입니다. nginx는 다른 모든 것을 제공합니다.

저는 정규 표현식 전문가가 아니며 nginx에 대해 매우 익숙하지 않으므로 어떻게하면 더 친숙한 패턴을 만들 수 있습니까? 아파치가 처리하고 제공하는 (html, php) 스크립트를 정의 할 수있는 방법이 있습니까?

+0

가 왜 아파치에서 정적 HTML 파일을 제공합니까? –

답변

1

그것은 아파치 PHP/HTML 요청을 전달하고 다음의 nginx가 나머지를 처리 ​​할 수 ​​있도록 쉽게 :

# serve all remaining static file requests from nginx 
location/{ 
    root c:/websites/www/html; 
    expires 1y; 
} 

# pass any request uri ending with .php or .html, .htm to apache 
location ~* \.(php|html|htm)$ { 
    # proxy to apache 
} 
+0

"Apache에서 정적 html 파일을 제공하는 이유는 무엇입니까?"라는 질문에 대한 답변을 주셔서 감사합니다. 내가 joomla 및 joomla를 사용하기 때문에 페이지 URL에 .html 클래스 접미사가 PHP에서 생성 된 그래서 아파치가 진짜로 그들을 처리해야합니다. – C0nw0nk

+0

또한 어떤 이유로 든 내 nginx는 내 구성으로 시작하고 싶지 않습니다. – C0nw0nk

+0

이상합니다. 내 devbox에서로드 할 수 있습니다. 'nginx -t'를 실행하면 오류 메시지는 무엇입니까? 또는 nginx 오류 로그에 오류 메시지가 무엇입니까? Linux에서 오류 로그는 일반적으로 /var/log/nginx/error.log입니다. –