2016-10-06 4 views
0

Я настроил свою конфигурацию nginx, на которой я запускаю два сайта на одном и том же порту. Моя проблема: я не хочу указывать номер порта всякий раз, когда я открываю свой сайт. Я запускаю свои сайты на порт 81. Моя проблема в том, что если у меня есть эти два сайта abc.com:81 и xyz.com:81. Мне нужно указать номер порта при открытии, который я не хочу, может ли кто-нибудь сказать мне возможное решение.Настроить nginx для разных портов

Вот моя конфигурация Nginx

user abc; 
worker_processes 2; 

error_log /var/log/nginx/error.log; 
pid  /var/run/nginx.pid; 

events { 
    worker_connections 1024; 
} 

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

    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; 
    keepalive_timeout 65; 

    passenger_root /usr/local/rvm/gems/ruby-2.2.3/gems/passenger-5.0.30; 
    passenger_ruby /usr/local/rvm/gems/ruby-2.2.3/wrappers/ruby; 
    passenger_max_pool_size 50; 
    passenger_min_instances 5; 
    passenger_max_instances_per_app 0; 
    passenger_pool_idle_time 0; 
    passenger_max_preloader_idle_time 0; 
    passenger_app_env staging; 
    passenger_friendly_error_pages on; 

    server { 
     listen  81 default_server; 
     passenger_enabled on; 

     server_name abc.com; 
     root   /var/www/project/current/public; 

     location/{ 

     } 

     error_page 404    /404.html; 
     location = /40x.html { 
      root /var/www/project/current/public; 
     } 

     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root /var/www/project/current/public; 
     } 
    } 

    server { 
    listen 81 ; 
    passenger_enabled on; 

    root /var/www/new_project/current/public; 
    server_name xyz.com; 

    if (-f $document_root/system/maintenance.html) 
    { 
     rewrite ^(.*)$ /system/maintenance.html last; 
     break; 
    } 
    error_page 500 502 503 504 /500.html; 
    location = /500.html 
    { 
     root /var/www/new_project/current/public; 
    } 
    error_page 404 /404.html; 
    location = /404.html 
    { 
     root /var/www/new_project/current/public; 
    } 

    } 

} 
+0

Я думаю, что концептуально, что вы делаете, настраивается 'location' для каждого сервера, как в порте 80' listen'. то есть '/ server_a' и'/server_b'. Тогда у вас будут такие блоки «location», которые вызывают «proxy_pass» на ваш другой порт. –

ответ

0

порт по умолчанию для HTTP используется порт 80. Таким образом, если вы прослушивает порт 80, вам не нужно указывать номер порта в URL, так как с lients будет по умолчанию использовать порт 80, если в URL не указан другой порт.

Для всех остальных портов необходимо добавить порт в URL-адрес, хотя, поскольку у клиента нет другого способа определить порт для подключения другим способом.

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