Nginx 虚拟主机

优质博文 IT-BLOG-CN

在这里插入图片描述

虚拟主机使用的是特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台 “虚拟” 的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完成的Intemet服务器功能(WWWFTPEmail等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者的角度来看,每一台虚拟主机和一台独立的主机完全一样。

利用虚拟主机,可以在同一台服务器,同一组Nginx进程上运行多个网站的功能。不用为每个要运行的网站提供一台单独的Nginx服务器或单独的一组Nginx进程。

虚拟主机的配置主要有以下三种:

一、基于域名的虚拟主机

进入conf/nginx.conf配置文件中添加server属性,示例如下:一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。

server {
    #检测默认的80端口
	listen       80;
    #我们测试的是域名映射,所以这个配置是重点,也是外部访问的地址
	server_name  virtual.test.com;
	
    #如果配置的默认/,则访问项目时,输入虚拟域名即可
	location / {
        #默认访问的是nginx根目录下的virtual.test/html目录中的index.html
	    root   virtual.test/html;
	    index  index.html;
	}
}

测试前准备:
1)、添加本地域名映射,修改HOSTS(C:\Windows\System32\drivers\etc)文件,在文件未添加IP域名(举例:192.168.88.130 virtual.test.com
2)、在nginx根目录下创建root所配置的文件夹virtual.test/html(全路径展示:/usr/install/nginx/virtual.test/html
3)、在此目录下创建index.html文件即可。

<html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        </head>
        <body>
            <h2>虚拟主机测试页面-index</h2>
        </body>
</html>

4)、访问http://virtual.test.com/

二、基于端口的虚拟主机

只需将server中的listen属性设置为目标端口即可:

server {
    #主要配置属性
	listen       8089;
	server_name  virtual.test.com;
	
	location / {
	    root   virtual.test/html;
	    index  index.html;
	}
}

通过http://virtual.test.com:8089/也可以访问目标文件:

三、基于IP的虚拟主机

server_name修改为虚拟机的IP地址即可:

server {
    listen       8089;
    #修改为虚拟机的IP地址
    server_name  192.168.88.130;

    location / {
        root   html;
        index  index.html index.htm;
    }
}

通过IP地址访问目标项目测试如下:

四、Nginx代理

根据项目名称,将请求发送给对应的服务器,匹配规则如下:
【1】=严格匹配:如果这个查询匹配,那么将停止搜索并立即处理此请求;
【2】~为区分大小写匹配(可用正则表达式);
【3】!~为区分大小写不匹配
【4】~*为不区分大小写匹配(可用正则表达式)
【5】!~*为不区分大小写不匹配
【6】^~如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。

示例:

server {
	listen       9001;
	server_name  localhost;

	location ~ /edu/ {           
		proxy_pass http://localhost:8101;
	}
		
	location ~ /oss/ {   
		proxy_pass http://localhost:8102;
	}
}

总结:在 Nginx下配置虚拟主机 vhost 非常方便。主要在 Nginx 的配置文件 nginx.conf 中添加一个 server 即可。使用基于域名的虚拟主机配置是比较流行的方式,可以在同一个IP上配置多个域名并且都通过80端口访问。由于基于IP地址的虚拟主机需要添加网络接口 使用不广泛。

  • 29
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿进阶

千言万语都不及一句“谢谢”

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值