2013-03-21 3 views
3

Вот предпосылки:субдоменов, Nginx и GoDaddy

  • Я зарегистрировал домен example.com в GoDaddy.
  • Я запускаю Tomcat на 8080 порт с несколькими приложениями. Порт 8080 скрыт от мира.
  • Я хочу на карте subdomain.example.com до server:8080/subdomain. Я хочу, чтобы можно было делать похожие сопоставления (subdomain2.example.com - server:8080/anotherContext, например) в будущем.
  • example.com должны быть отображены в server:8080/mainPageApp
  • Все остальные приложения должны быть через их подъезд контексте: example.com/app ->server:8080/app.

На данный момент, я только настроен GoDaddy (я не знаю, если это хорошо):

Godaddy domain config

Можете ли вы помочь мне с Nginx конфигурации для этого случая? Вот мой, но он отправляет бесконечные переадресации:

server { 
    listen  80; 
    server_name localhost; 

    location/{ 
     root html; 
     index index.html; 
    } 
} 
server { 
    listen  80; 
    server_name subdomain.localhost; 

    location/{ 
     proxy_pass http://127.0.0.1:8080/subdomain; 
    } 
} 

ответ

2

Ok. Я получил эту работу. Не уверен, что решение верное, но:

Сначала мне нужно настроить субдомен в Tomcat. Here is the answer I was inspired with.

<Host name="subdomain.example.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> 
    <Context path="" docBase="subdomain" /> 
</Host> 

Затем настроить Nginx с:

server { 
    listen  80; 
    server_name example.com; 

    location/{ 
     root /path/to/domain/root; 
     index index.html; 
    } 
} 

server { 
    listen  80; 
    server_name subdomain.example.com; 

    location/{ 
     proxy_pass  http://subdomain.example.com:8080; 
     proxy_set_header Host    $http_host; 
     proxy_set_header X-Real-IP  $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 

домена конфигурации остается в этом вопросе - это хорошо.

И, наконец, я просто положил subdomain.war в каталог моего Tomcat webapp, и это работает как шарм!

+0

Двигаясь вперед, вы можете поместить 'proxy_set_header' в свой собственный файл (' proxy.conf') и просто включить это как макрос в каждый блок местоположения. –

+2

вы также можете настроить godaddy с * для подстановочного dns, который указывает каждый поддомен на ваш IP-адрес. это действительно полезное тестирование. последний трюк заключается в том, что если это локальный блок или вам нужен какой-то локальный тест, вы можете настроить dns на godaddy на «127.0.0.1». –

+0

Ничего себе! Последний трюк классный. Для этого я использовал файл 'etc/hosts'. – madhead

Смежные вопросы