Nginx + apache麻烦

时间:2013-12-15 13:35:05

标签: apache ubuntu web nginx

Ubuntu 12.04 x64,DigitalOcean。 我已经安装了nginx + Apache + PHP,但静态内容没有加载,网址坏了。

enter image description here 你可以看到,所有网址中都设置了proxy_pass。如果我关闭nginx并更改端口Apache工作正常。 /etc/nginx/nginx.conf

user www-data;
worker_processes 1;
pid /var/run/nginx.pid;
error_log /home/project/logs/nginx.error.log;
events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
     gzip_proxied any;
     gzip_comp_level 7; #Level Compress
     gzip_buffers 16 8k;
     gzip_http_version 1.1;
     gzip_types text/plain text/css application/json application/x-javascri$

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-enabled/project.ru

upstream project {
    server 127.0.0.1:81;
}
server {
    listen          80;
    error_page      404     /404.html;
    error_page      403     /403.html;
    server_name     project.ru www.project.ru;

    access_log      /home/project/logs/nginx.access.log;
    error_log       /home/project/logs/nginx.error.log;

    location / {
            proxy_pass      http://project;
    }
    location ~* .(jpg|jpeg|gif|png|ico|css|bmp|swf|js|mov|avi|mp4|mpeg4) {
            root /home/project/www;
    }

    location ~ /.ht {
            deny all;
    }
}

1 个答案:

答案 0 :(得分:0)

使用location / {},您将所有请求传递给上游。移动其他位置块或执行以下操作:

location / {
    root /home/project/www;
    try_files $uri @dynamic;
}

location @dynamic {
    proxy_pass http://project;
}
  

try_files   按顺序检查文件是否存在,并返回找到的第一个文件。尾部斜杠表示目录 - $ uri /。如果未找到任何文件,则会调用到最后一个参数的内部重定向。请注意,只有最后一个参数会导致内部重定向,以前的参数只会设置内部URI指针。最后一个参数是回退URI,必须存在,否则将引发内部错误。可以使用命名位置。与重写不同,如果回退不是命名位置,则不会自动保留$ args。如果您需要保留args,则必须明确地执行此操作。

http://wiki.nginx.org/HttpCoreModule#try_files