Ubuntu Linux 中虚拟主机的配置 - 搭配 Nginx

虚拟主机,正如其名,就是将一台服务器划分为多个虚拟的主机,能够将每一个域名分配给不一样的虚拟主机,这样能够充分利用了域名资源和硬件资源。此次咱们采用 Nginx 实现虚拟主机的配置。html

Nginx 是一款 free、开源的高性能 HTTP 服务器和反向代理服务器,同时可用做 IMAP、POP三、SMTP 服务器,它常常被用做 HTTP 服务器进行 Web 应用的部署使用,另外,Nginx 还常常以反向代理服务器的身份实现负载均衡。nginx

使用 Nginx 配置虚拟主机只需编辑 Nginx 安装目录下 conf/nginx.conf 便可,增长一个虚拟主机只须要在配置文件中添加一个 server 节点,就像这样:正则表达式

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

    location / {
        index index.html;
        root /home/www/test1/;
    }
}

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

    location / {
        index index.html;
        root /home/www/test2/;
    }
}
复制代码

listen 为监听的端口,本例中监听 80 端口 server_name 即指定的虚拟主机名 location 只 Nginx 代理的相对 URL 范围 index 指主页的文件名 root 为网站根目录在系统中的实际位置bash

location / 表示匹配这个主机名下的全部请求,server_name 的值能够为 *.example.com 这种形式,即匹配全部以 example.com 结尾的主机名,亦或 test.*,即全部以 test 开头的主机名,还能够用正则表达式的形式,好比 ~^test\d+\.example\.com$,若是使用正则表达式,最前面要加上 ~ 这个符号。服务器

以上两个虚拟主机实现了将对不一样主机名的请求指向不一样的物理目录,下面介绍如何用虚拟主机实现区分端口,即将不一样主机名的请求分发到不一样端口上负载均衡

和上面的配置写法相似:性能

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

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

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

    location / {
        proxy_pass http://127.0.0.1:8081;
    }
}
复制代码

proxy_pass 表示将请求转发到某个 URL,这样即可以实现虚拟主机名和端口的映射了。若是采用一台物理机部署多个 Tocmat 服务实例则能够采用这种方式,这样就避免了暴露多个端口的问题。网站

我的博客同步更新,获取更多技术分享请关注:郑保乐的博客ui

相关文章
相关标签/搜索