对多个站点使用端口而不是域

对多个站点使用端口而不是域

我有一台没有域名的服务器,但我想在那里运行一些网站。我想使用端口而不是域名来实现。

我为此端口设置了一个站点,并将应用程序目录设置为根目录,但现在当我尝试访问时http://127.0.0.1:81,服务器会将我转发到http://127.0.0.1:81/magento并破坏我的应用程序 URL。nginx 为什么会这样做?

我对这个网站的配置是:

 server {
    listen 81;
    root /usr/share/nginx/www/magento;

    location / {
        index index.html index.php;
        try_files $uri $uri/ @handler;
        expires 30d;
    }

    location ^~ /app/                { deny all; }
    location ^~ /includes/           { deny all; }
    location ^~ /lib/                { deny all; }
    location ^~ /media/downloadable/ { deny all; }
    location ^~ /pkginfo/            { deny all; }
    location ^~ /report/config.xml   { deny all; }
    location ^~ /var/                { deny all; }

    location /var/export/ {
        auth_basic           "Restricted";
        auth_basic_user_file htpasswd;
        autoindex            on;
    }

    location  /. {
        return 404;
    }

    location @handler {
        rewrite / /index.php;
    }

    location ~ .php/ {
        rewrite ^(.*.php)/ $1 last;
    }

    location ~ .php$ {
        if (!-e $request_filename) { rewrite / /index.php last; }

        expires        off;
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  MAGE_RUN_CODE default;
        fastcgi_param  MAGE_RUN_TYPE store;
        include        fastcgi_params;
    }
}

答案1

正如 Felix 在上面的评论中提到的,有些应用程序会为您重写 URL。检查这一点的一种方法是执行

wget http://127.0.0.1:81 

看看你是否获得了 301/302 重定向到

http://127.0.0.1:81/magento

该配置文件中似乎没有任何内容表明 nginx 是问题所在,因此我会检查应用程序本身。

相关内容