【问题标题】:Nginx+apache troublesNginx+apache的烦恼
【发布时间】:2014-01-02 21:52:30
【问题描述】:

Ubuntu 12.04 x64,数字海洋。 我已经安装了 nginx+Apache+PHP,但是静态内容没有加载,url 坏了。

您可以看到,所有 url 中设置了什么 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;
    }
}

【问题讨论】:

  • 标题说明了一切。为什么要安装2种网络服务器?

标签: apache ubuntu web nginx


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2016-07-16
    • 2017-04-15
    • 2012-04-03
    • 1970-01-01
    相关资源
    最近更新 更多