前言
Nginx的安装可参考https://my.oschina.net/staybug/blog/4254456
Nginx实现虚拟主机主要有两种方式,基于域名的虚拟主机和基于端口的虚拟主机。
1.基于域名的虚拟主机配置
两个域名指向同一台Nginx服务器,用户访问不同的域名显示不同的网页类容。我设置的两个域名是a.com和b.com,Nginx使用的虚拟机是192.168.2.10。
1.1修改hosts文件
配置a.com、b.com和虚拟机192.168.2.10的映射关系,修改Windows下的hosts配置文件(文件位置:C:\Windows\System32\drivers\etc)。
1.2创建访问成功页面
在Linux中Nginx安装目录下创建两个欢迎页面,首先创建两个目录。
mkdir -p /usr/local/nginx/a_html
mkdir -p /usr/local/nginx/b_html
/usr/local/nginx/a_html为a.com域名访问的目录;/usr/local/nginx/b_html为b.com访问的目录。目录中的内容使用Nginx自带的html文件,将/usr/local/nginx/html中的类容分别拷贝到上面两个目录中,并将a_html中index.html的<h1>标签体中的内容改为:Welcome to a nginx!;将b_html中index.html的<h1>标签体中的内容改为:Welcome to b nginx!。
1.3配置虚拟主机
修改/usr/local/nginx/conf/nginx.conf文件,配置两个虚拟主机a.com和b.com,就是在配置文件中添加两个server结点。配置文件中有一个默认的server结点,新添加的结点放到默认server结点同一层级。
server {
listen 80;
#访问路径
server_name a.com;
location / {
#转发目的地
root /usr/local/nginx/b_html;
index index.html index.htm;
}
}
server {
listen 80;
server_name b.com;
location / {
root /usr/local/nginx/b_html;
index index.html index.htm;
}
}
1.4测试
配置文件修改后需要重启Nginx才会生效。
访问a.com 页面显示Welcome to a nginx!
访问b.com 页面显示Welcome to b nginx!
2.基于端口的虚拟主机
Nginx对外提供8081和8082两个端口监听服务,请求8081端口访问上文中创建的/usr/local/nginx/a_html目录下的index.html;请求8082端口则访问上文中创建的/usr/local/nginx/b_html目录下的index.html
2.1配置虚拟主机
修改/usr/local/nginx/conf/nginx.conf文件,再添加两个server结点。
server {
listen 8081;
server_name 192.168.2.10;
location / {
root /usr/local/nginx/a_html;
index index.html index.htm;
}
}
server {
listen 8082;
server_name 192.168.2.10;
location / {
root /usr/local/nginx/b_html;
index index.html index.htm;
}
}
2.2测试
一样也要重启Nginx,配置文件才会生效,访问http://192.168.2.10:8080服务器将/usr/local/nginx/a_html/index.html响应给客户端,访问http://192.168.2.10:8081服务器将/usr/local/nginx/b_html/index.html响应给客户端。
来源:oschina
链接:https://my.oschina.net/staybug/blog/4267492