nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > Nginx配置虚拟主机

Nginx配置虚拟主机的三种方法

作者:程序猿进阶

本文主要介绍了Nginx配置虚拟主机的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

虚拟主机使用的是特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台 “虚拟” 的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完成的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地址的虚拟主机需要添加网络接口 使用不广泛。

到此这篇关于Nginx配置虚拟主机的三种方法的文章就介绍到这了,更多相关Nginx配置虚拟主机内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文