2013-05-06 3 views
1

Мой вопрос похож на один here. Но в моем случае я использую общедоступное доменное имя Godaddy, которое указывает на общедоступный адрес и направляется на мой сервер, у которого есть фиксированный частный IP-адрес (192.168.0.145). Если я дам имя сервера domain.com в nginx.conf, ничего работает. Но если я дам localdomain или серверный IP-адрес, он работает, даже если я просматриваю http://domain.com. Я даже пытаюсь добавить доменное имя к моему отказу хоста [127.0.0.1 domain_name], но не повезло. Я искал в Интернете, но я никогда не видел, чтобы кто-то размещал частный ip или localdomain в nginx.conf вместо адреса домена. Мне действительно нужно перенаправить все http://domain.name на http://www.domain.com, но так как я не могу разместить свое доменное имя, я не смог найти решение. Мне что-то не хватает?Nginx Перепишите все http-запросы на www

server { 
     listen 80; 
     server_name 192.168.0.145; 
     location/{ 
      proxy_set_header X-Forwarded-Host $host; 
      proxy_set_header X-Forwarded-Server $host; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_pass http://localhost:8080; 
     } 
} 

ответ

0

Это сложное решение, вы определяете 2 сервера, а не-WWW перенаправляет на WWW

server{ 
    server_name domain.com; 
    return 301 $scheme://www.domain.com$request_uri 
} 
server{ 
    server_name www.domain.com; 
    #the rest of your normal config goes here 
} 

все не-WWW будет соответствовать server # 1 и будет направлен в формат, соответствующий серверу # 2

0

В вашем разделе сервера

server_name www.domain.com domain.com 192.168.0.145; 

if ($host !~* ^www\.domain\.com$) { 
    rewrite ^(.*)$ http://www.domain.com$1 permanent; 
} 
+0

мы можем сделать это без использования, если потому, что http://wiki.nginx.org/IfIsEvil – user1595858

+0

Я попытался с этим, я вижу, что он пересылает на www.domain.com, а затем я получаю сообщение об ошибке страницы. – user1595858

+0

У вас есть запись DNS для www.domain.com? – zoonman

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