2016-11-22 7 views
1

первое сообщение здесь после многих часов и дней подряд пытается получить обратный прокси NGINX для работы.NGINX Обратный прокси не разрешает имя_сервера для субдоменов через Namecheap

У меня есть несколько поддоменов через сервис Namecheap указывая на дом на 80-й порт, и маршрутизатор/брандмауэр работает OpenWrt, который указывает на внутренний обратный прокси-сервер Nginx (CentOS 7) на порт 80.

субдомены для этого примера dokuwiki.namecheaptld.io и observium.namecheaptld.io

Вот мой главный /etc/nginx.conf файл:

user nginx; 
worker_processes auto; 
error_log /var/log/nginx/error.log; 
pid /run/nginx.pid; 
include /usr/share/nginx/modules/*.conf; 
events { 
    worker_connections 1024; 
} 
http { 
    log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
         '$status $body_bytes_sent "$http_referer" ' 
         '"$http_user_agent" "$http_x_forwarded_for"'; 

    access_log /var/log/nginx/access.log main; 

    sendfile   on; 
    tcp_nopush   on; 
    tcp_nodelay   on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 

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

    # Load modular configuration files from the /etc/nginx/conf.d directory. 
    # See http://nginx.org/en/docs/ngx_core_module.html#include 
    # for more information. 
    include /etc/nginx/conf.d/*.conf; 

    server { 
     listen  80 default_server; 
     #listen  [::]:80 default_server; 
     server_name _; 
     #root   /usr/share/nginx/html; 

     # Load configuration files for the default server block. 
     #include /etc/nginx/default.d/*.conf; 

     #location/{ 
     #} 

     error_page 404 /404.html; 
      location = /40x.html { 
     } 

     error_page 500 502 503 504 /50x.html; 
      location = /50x.html { 
     } 
    } 

Я создал файл proxy_params в/и т.д./Nginx, которые ранее не было:

proxy_set_header Host $host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_set_header X-Forwarded-Proto $scheme; 

У меня есть 2 поддомены внутри от /etc/nginx/conf.d/ имени dokuwiki.conf и observium.conf:

upstream dokuwiki { 
     server 192.168.1.6:8180; 
} 

server { 
    listen  80; 
    server_name dokuwiki.namecheaptld.io; 

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

    location/{ 
    proxy_pass http://192.168.1.6:8180; 
    include /etc/nginx/proxy_params; 
    } 
} 


upstream observium { 
     server 192.168.1.8:80; 
} 

server { 
    listen  80; 
    server_name observium.namecheaptld.io 
    access_log /var/log/nginx/observium.access.log main; 
    error_log /var/log/nginx/observium.error.log; 

    location/{ 
     proxy_pass http://192.168.1.8:80; 
     include /etc/nginx/proxy_params; 
    } 
} 

Всякий раз, когда я пытаюсь получить доступ либо subdomain.namecheaptld.com, Мне представлен определенный виртуальный хост по умолчанию с eith _ или default_server в блоке server_name.

Я полностью смущен, почему он не работает после многих попыток, включая добавление трейлинга/после прокси-пароля, определенного IP, и посмотрел заголовки HTTP, входящие в /var/log/nginx/dokuwiki.access.log:

[22/Nov/2016:09:29:54 -0500] "GET/HTTP/1.1" 200 18273 "http://dokuwiki.namecheaptld.io/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-" 
[22/Nov/2016:09:29:54 -0500] "GET /lib/exe/indexer.php?id=start&1479824990 HTTP/1.1" 200 42 "http://MYEXTERNALIP/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-" 
[22/Nov/2016:09:29:57 -0500] "GET/HTTP/1.1" 200 18264 "http://observium.namecheaptld.io/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-" 
[22/Nov/2016:09:29:57 -0500] "GET /lib/exe/indexer.php?id=start&1479824994 HTTP/1.1" 200 42 "http://MYEXTERNALIP/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36" "-" 

Таким образом, для указанных выше заголовков, когда я его слушать на 192.168.1.11:80, похоже, он принимает либо запрос dokuwiki.namecheaptld.io или observium.namecheaptld.io и обработку запроса, как будто это DokuWiki .namecheaptld.io

Я попытался использовать явные подстановочные знаки в директиве server_name, которая, похоже, не помогла.

+0

Спасибо за ответ. Я подумал, что доступные сайты теперь были устаревшими и перенять vhosts прямо в каталог conf.d? Я открыт для использования в зависимости от того, что рекомендуется для текущей версии NGINX. –

ответ

0

Я, наконец, исправил его после такого устранения неполадок! Идите, что приведенный выше код абсолютно корректен, если кто-то хочет использовать его в качестве шаблона.

Проблема заключалась в том, что у меня была настройка перенаправления URL-адресов в namecheap вместо записей A для каждого субдомена -> мой внешний IP-адрес. Не могу поверить, что это так просто, DNS для ya ...