通过 Nginx 运行 Mumble Django - 配置文件在重写中无限循环

通过 Nginx 运行 Mumble Django - 配置文件在重写中无限循环

我在配置 Nginx 代替 Apache 时遇到了一些问题,以便它能够为客户端提供 Mumble Django。我有 vhostsApache 和 Lighttpd 的配置- 让我把它们并排放在这里,为您节省点击次数 :)。Apache2 利用 WSGI 将 Django Python 作为 CGI 运行。据我所知,Lighttpd 的工作方式类似于 Nginx/PHP-FPM。

专用 Apache2 虚拟主机 - 配置:

<VirtualHost *:80>
        ServerName              example.com
        ServerAlias             www.example.com

        Alias                   /static/admin/  /usr/share/pyshared/django/contrib/admin/static/admin/
        Alias                   /static/        /srv/mumble-django/htdocs/
        Alias                   /mumble/media/  /srv/mumble-django/pyweb/mumble/media/

        WSGIScriptAlias         /               /srv/mumble-django/mumble-django.wsgi
        WSGIDaemonProcess       mumble-django threads=25
        WSGIProcessGroup        mumble-django
        WSGIScriptReloading     Off

        # Cache optimization - not necessarily needed for MD, but nice to have :)
        FileETag None
        <IfModule mod_headers.c>
                Header unset ETag

                <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
                        Header set Cache-Control "max-age=86400, must-revalidate"
                </FilesMatch>

                <IfModule mod_deflate.c>
                        # compress content
                        AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript image/png image/jpeg image/gif
                        # properly handle requests coming from behind proxies
                        Header append Vary User-Agent
                </IfModule>
        </IfModule>
</VirtualHost>

Lighttpd 配置:

server.document-root = "/usr/local/www/mumble-django"
  alias.url = (
    "/static" => "/usr/local/www/mumble-django/htdocs/",
    "/media"  => "/usr/local/lib/python2.6/site-packages/django/contrib/admin/media/"
  )
  url.rewrite-once = (
    "^(/media.*)$" => "$1",
    "^(/static.*)$" => "$1",
    "^(/.*)$" => "/mumble-django.fcgi$1",
  )
  fastcgi.server = (
    "/mumble-django.fcgi" => (
      "" => (
        "socket" => "/tmp/mumble-django.sock",
        "check-local" => "disable"
      )
    )
  )

我转换的可耻的 Nginx 配置文件是这样的:

server {
    listen 80;
    server_name mumble-web-ui.imanov.name;
    server_name_in_redirect on; # SEO: Avoid different host-names!
    server_tokens off;
    root /home/shehi/www-data/subdomains/mumble_web_ui;
    merge_slashes on;
    msie_padding on;
    client_max_body_size 64M;
    index index.php;
    error_log /home/shehi/logs/error_log debug;

    location /static
    {
        alias /home/shehi/www-data/subdomains/mumble_web_ui/htdocs/;
        internal;
    }

    location /media
    {
        alias /home/shehi/www-data/subdomains/mumble_web_ui/pyweb/mumble/media/;
        internal;
    }

    location /
    {
#       rewrite ^(/.*)$ /mumble-django.fcgi$1 last;
#       try_files $uri $uri/ /mumble-django.fcgi$uri;
        gzip on;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        include fastcgi_params;
    }
}

显然,我的配置陷入了无限循环:

http://mumble-web-ui.imanov.name/mumble/mumble/.. .../mumble/mumble/ 

所以,简而言之,我在这里做错了什么?提前感谢大家的帮助!

相关内容