nginx 一個端口多域名服務方案

企業的公網IP只有一個的情況下,由於端口只允許給一個App進程佔用,固無法提供多種web服務。windows下的IIS有匹配主機頭的功能,其實也可以使用nginx來實現多域名服務方案。

一、原始方案

域名 IP地址
host.com 192.168.0.10
server1.com 192.168.0.11
server2.com 192.168.0.12

訪問時指向到三臺服務器上,即三個域名分別提供三個IP地址。

原始訪問

二、改造方案

我們在host.com服務器上部署一套nginx程序,利用nginx自動匹配域名,並採用代理的形式轉發數據。

多域名Web服務網絡拓撲

1.增加域名

域名 IP地址
host.com 192.168.0.10
server1.com 192.168.0.11
server2.com 192.168.0.12
server1.host.com 192.168.0.10
server2.host.com 192.168.0.10

說明:域名可以是一級或者多級,這裏我們採用二級域名作爲示例。

2. 在host.com部署nginx

  • 關於nginx的安裝在這裏不做描述。
  • 修改nginx的配置文件 conf/nginx.conf
worker_processes  4;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;

    sendfile        on;
    keepalive_timeout  65;
    gzip  on;


     server {
        listen 80;
        server_name server1.host.com;
        location / {
            proxy_pass http://server1.com/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 10m;
        }
    }
     server {
        listen 80;
        server_name server2.host.com;
        location / {
            proxy_pass http://server2.com/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            client_max_body_size 10m;
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章