2016-01-15 5 views
0

У меня есть удаленный сервер с сервером nginx. Я создал sites-available и sites-enabled папки, у меня есть папка в нем под названием example.com со следующей конфигурацией:Открыть URL через IP

#HTTP serve 
# 
server { 
     listen 80; 

     root /var/www/example.com/www/; 
     index index.php index.html index.htm; 

     server_name example.com; 

     access_log /var/log/nginx/example.com.access.log combined buffer=1024k; 
     error_log /var/log/nginx/example.com.error.log; 

     client_max_body_size 128M; 

     if (!-e $request_filename) { 
       rewrite ^/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ /index.php?controller=$1&action=$2 last; 
     } 

     location ~ \.php$ { 
       if (!-f $document_root/$fastcgi_script_name){ 
         return 404; 
       } 

       fastcgi_split_path_info ^(.+\.php)(/.+)$; 
       fastcgi_pass unix:/var/run/php5-fpm.sock; 
       fastcgi_index index.php; 
       proxy_connect_timeout 600s; 
       proxy_read_timeout 600s; 
       include fastcgi_params; 
     } 

     location ~ /\.ht { 
       deny all; 
     } 
} 

Он должен перенаправлять меня /var/www/example.com/www, когда я вхожу http://example.com/ URL в браузере. Но у меня пока нет этого домена, и я хочу открыть его через сервер IP xxx.xxx.xxx.xxx. Как мне это сделать?

Должен ли я переименовать папку в IP? Тогда я не мог получить доступ к другим папкам.

ответ

2

Как stateed по @ceejayoz и подтверждены http://nginx.org/en/docs/http/server_names.html, вы можете указать IP-адрес в server_name:

Если кто-то делает запрос, используя IP-адрес вместо имени сервера, «Host» заголовка запроса поле будет содержать IP-адрес и запрос может быть обработан с использованием IP-адреса в качестве имени сервера:

в противном случае, действие по умолчанию используется первый сервер в файле конфигурации, если не server_name не соответствует.

http://nginx.org/en/docs/http/request_processing.html#mixed_name_ip_based_servers

В этой конфигурации испытаний Nginx только по просьбе в поле заголовка «Host», чтобы определить, какой сервер запрос должен быть направлен. Если его значение не соответствует ни одному имени сервера, либо запрос не содержит этого поля заголовка вообще, тогда nginx направит запрос на сервер по умолчанию для этого порта. В приведенной выше конфигурации сервер по умолчанию является первым, что является стандартным поведением nginx по умолчанию.

Вы можете посмотреть опцию default_server для имени сервера, как описано во второй ссылке.

+0

Хорошо, это именно то, что я сделал, но это не сработало. Я изменил его на 'listen 91.266.10.15: 80', но я все еще получаю таймаут соединения. – user99999

+0

Вы никогда не должны получать таймаут соединения, если nginx правильно прослушивает порт. Итак, есть еще одна проблема: убедитесь, что порт 80 открыт в вашем брандмауэре, и nginx его прослушивает, используя 'netstat -natp' – Devon

+0

. Он показывает' tcp6 0 0 ::: 80 ::: * LISTEN 11901/nginx: master', nginx работает, но все равно ничего. – user99999