Назад | Перейти на главную страницу

Локальное веб-приложение не разрешает localhost

У меня есть местный веб-сайт под названием http://localhost.example.com но теперь, когда я пытаюсь открыть его в веб-браузере, он перенаправляет меня на http://www.example.com. Раньше это работало. Что я изменил в системе, так это конфигурацию AWS CLI и локальную конфигурацию Bitbucket, чтобы использовать две разные учетные записи. Ничего более. Считаю, что изменения неактуальны. Не так ли?

Вся информация и файлы, которые я предоставляю, получены с локальной рабочей станции. Я использую OS X 10.12 (бета 2).

Соответствующая часть / etc / hosts это:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1 localhost 

127.0.0.1   localhost.example.com
127.0.0.1   babydiapi.example.com
127.0.0.1   localhost.mi.example.com
127.0.0.1   localhost.qr.example.com
127.0.0.1   localhost.pay.example.com
127.0.0.1   playground.com
127.0.0.1   payments.com
127.0.0.1   localhost.comunidad.example.com
198.58.110.224  web1.example.com
198.58.115.115  web2.example.com
45.56.67.40 web3.example.com

Но я делаю ping localhost.example.com Я получаю это:

PING localhost.example.com (104.200.16.137): 56 data bytes
64 bytes from 104.200.16.137: icmp_seq=0 ttl=49 time=166.894 ms

Я пытался сделать ping http://localhost.example.com но это не сработало:

ping: cannot resolve http://localhost.example.com: Unknown host

Полагаю, это нормальное поведение.

Это промежуточный сервер для моего приложения. Явно не localhost.

Я где-то читал, что мне следует использовать host localhost.example.com, но я все еще получаю это:

localhost.example.com has address 104.200.16.137

Я использую Nginx в качестве локального веб-сервера, конфигурация выглядит так:

server {
    listen   127.0.0.1:80;
    listen   127.0.0.1:443 ssl;
    server_name localhost.example.com;
    server_name_in_redirect off;
    error_page 404 /www/error/404.html;
    error_page 503 /www/error/404.html;

    ssl_certificate /usr/local/etc/nginx/ssl/localhost.crt;
    ssl_certificate_key /usr/local/etc/nginx/ssl/localhost.key;


    access_log /usr/local/etc/nginx/logs/www.example.com.access.log;
    error_log /usr/local/etc/nginx/logs/www.example.com.error.log;

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

    location ~* ^.+(\.jpg|\.jpeg|\.gif|\.png|\.js|\.ico|\.woff|\.ttf|\.eot|\.css)$ {
        root /www/www.example.com/webroot;
        access_log        off;
        expires          365d;
    }
    location / {
        root   /var/www/www.example.com/webroot/;
        index  index.php index.html index.htm;
        if (-f $request_filename) {
            break;
        }
        if (-d $request_filename) {
            break;
        }

        if (-f $request_filename) {
            break;
        }


        # Trigger 503 response on maintenance
        set $mantenimiento 0;
        if (-f /var/www/www.example.com/.mantenimiento) {
            set $mantenimiento 1;
        }
        if ($remote_addr = 127.0.0.1) {
            set $mantenimiento 0;
        }
        if ($mantenimiento) {
            return 503;
        }

        if (!-f $request_filename) {
            rewrite ^/(.+)$ /index.php?url=$1 last;
            break;
        }

    }
    location ~ .*\.php[345]?$ {
        set  $script     $uri;
        set  $path_info  "";

        if ($uri ~ "^(.+\.php)(/.+)") {
          set  $script     $1;
          set  $path_info  $2;
        }
        include fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/www.example.com$fastcgi_script_name;
        fastcgi_param  SCRIPT_NAME      $script;
        fastcgi_param  PATH_INFO        $path_info;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_read_timeout 300;
    }

    location @error_web {
        root /var/www/error;
        index 404.html;
    }
 }

У вас есть идеи или подсказки? Я просматривал Интернет около недели и не нашел ничего полезного.

Мне любопытно, не совпадает ли ваш / etc / hosts с / private / etc / hosts. На моем компьютере 10.11.5 я вижу, что они должны быть жесткой ссылкой (тот же номер inode, что и в первом поле в ls -li вывод ниже:

Camerons-MacBook-Air:~ cameron$ ls -li /private/etc/hosts /etc/hosts
12484749 -rw-r--r--  1 root  wheel  247 15 Jul 21:01 /etc/hosts
12484749 -rw-r--r--  1 root  wheel  247 15 Jul 21:01 /private/etc/hosts

Это все еще так? Обращаются ли / etc / hosts и / private / etc / hosts к одному и тому же файлу на диске?

На хосте Linux я бы тоже задумался о /etc/nsswitch.conf, но я вижу, что в OS X этого нет; Я не уверен, что он будет использовать вместо этого. Этот файл управляет порядком методов поиска для разрешения имен, таких как имена пользователей или имена хостов.

Ура, Кэмерон

Я хотел бы проверить это для вас, но у меня нет OSX.

По этой проблеме ведутся дискуссии. Люди говорят, что проблемы с форматированием (отсутствие / отсутствие / неправильные скрытые символы) в файле hosts могут привести к его игнорированию. Просмотрите следующий вопрос и прокрутите вниз до ответов и комментариев.

https://apple.stackexchange.com/questions/158117/os-x-10-10-1-etc-hosts-private-etc-hosts-file-is-being-ignored-and-not-resol

Вы также можете изучить это безумие. Опять же, что касается форматирования файла hosts.

https://github.com/devopsgroup-io/vagrant-hostmanager/issues/60

Какой редактор вы используете? Можете ли вы аккуратно переписать весь файл с помощью vi, nano или другого редактора Unix?

Не используйте host или nslookup, копайте и т. Д. они будут обходить файл hosts и запрашивать DNS-серверы. Продолжайте пытаться с ping localhost.domain.com пока вы не получите 127.0.0.1.