2015-12-16 3 views
0

Я довольно новичок в настройке NGINX. Я просмотрел много сообщений, которые ищут кого-то, кто столкнулся с этой проблемой и нашел рабочее решение.Nginx Reverse Proxy Subdomain for Node Applications

У меня есть 2 веб-приложения node.js, которые будут работать на 2 отдельных портах (например, 81, 82).

Мое первоначальное намерение состояло в том, чтобы использовать обратный прокси-сервер, чтобы посетители могли попасть в один и тот же физический ящик, но должны обслуживаться различным контентом на основе используемого им домена.

Мне удавалось отделять сайты от размещения на основе их домена. В одном из приложений есть привязанный к нему субдомен (app.exampleb.com), и кажется, что в любой момент, когда я пытаюсь получить доступ к этому поддомену, nginx обслуживает меня страницей с сообщением «что я настроил сервер успешно» ...... Спасибо nginx.

я поместил следующее в моем nginx.conf файле:

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 6; 
    # gzip_buffers 16 8k; 
    # gzip_http_version 1.1; 
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

    ## 
    # nginx-naxsi config 
    ## 
    # Uncomment it if you installed nginx-naxsi 
    ## 

    #include /etc/nginx/naxsi_core.rules; 

    ## 
    # nginx-passenger config 
    ## 
    # Uncomment it if you installed nginx-passenger 
    ## 

    #passenger_root /usr; 
    #passenger_ruby /usr/bin/ruby; 

    server { 
     listen  80; 
     server_name examplea.com; 

     location/{ 
     proxy_pass http://localhost:81; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
    } 

    server { 
      listen  80; 
      server_name app.examplea.com; 

      location/{ 
     proxy_pass http://localhost:81; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
     } 


    server { 
     listen  80; 
     server_name exampleb.com; 

     location/{ 
     proxy_pass http://localhost:82; 
     } 
    } 

    ## 
    # Virtual Host Configs 
    ## 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 
+0

Вы разместили эту конфигурацию в директиве 'http {}'? –

ответ

0

Полный конфиг должен быть таким:

server { 
    listen 80; 

    server_name example.com; 

    location/{ 
     proxy_pass http://localhost:81; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

Поместите его внутри http {} директивы в nginx.conf

Запомнить для перезапуска nginx

+0

Это не сработало. У меня есть мои серверы, расположенные внутри директивы http. Я все еще получаю конфигурацию nginx. Я отредактирую свой пост выше, чтобы отразить то, что я сейчас использую. – Neurax

+0

Вы перезапустили его? Я знаю, что это глупый вопрос, но просто чтобы быть уверенным. –

+0

Да. 'nginx -s reload' – Neurax