我有一个运行 Nginx 和 Apache 的网站
Apache 处理 PHP 文件,Nginx 处理 html 静态文件
我们现在已经更改了网站,因此没有 html 静态文件,只有 PHP 文件,这会给服务器带来很大的负载,所以我想将 nginx 作为反向代理缓存,这样来自 Apache 的 php 文件就会被缓存并以静态方式传递...
有专业知识的人能告诉我以下内容是否有效或者我需要进行哪些更改?
...
proxy_cache_path /var/www/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /var/www/cache/tmp;
#
# The default server
#
server {
listen 80;
client_max_body_size 100M;
server_name 71.72.73.745 domain.com www.domain.com;
#access_log logs/host.access.log main;
location / {
root /var/www/html/domain;
index index.html index.htm index.php;
location ~* \.(jpg|jpeg|gif|png|ico|js|css)$ {
log_not_found off;
expires 180d;
proxy_pass http://127.0.0.1:8080;
proxy_cache my-cache;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
}
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 = @apache;
# location = /50x.html {
# root /usr/share/nginx/html;
# }
#PHP goes to apache
location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache my-cache;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
}
error_page 404 = @apache;
error_page 405 = @apache;
location @apache {
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
...
请让我知道我的 nginx.conf 文件中的上述内容是否可以使从 Apache 获取的所有 php 文件通过 nginx 缓存并作为静态文件传送,从而减少服务器负载!
如果不是,我应该改变什么?
谢谢,阿库。
答案1
http://www.iasptk.com/how-to-set-up-nginx-as-a-reverse-proxy-for-apache2-on-ubuntu-1204-
如何在 Ubuntu 12.04 上将 nginx 设置为 Apache2 的反向代理