我的 nginx 反向代理缓存能起作用吗?

我的 nginx 反向代理缓存能起作用吗?

我有一个运行 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 的反向代理

相关内容