参考:https://blog.csdn.net/baikeliang/article/details/72677687
https://www.cnblogs.com/crazylqy/p/6891954.html
Nginx 配置虚拟主机的三种方法
虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。
利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。
nginx下,一个server标签就是一个虚拟主机。配置虚拟主机三种方法:
1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站
2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站,外部网站的管理后台
3、基于ip的虚拟主机,几乎不用。
1、基于域名配置虚拟主机配置
需要建立/data/www /data/bbs目录,windows本地hosts添加虚拟机ip地址对应的域名解析;(C:\Windows\System32\drivers\etc hosts文件末尾追加)
对应域名网站目录下新增index.html文件; (注意端口保持相同)
nginx.conf配置文件新增如下代码:
server {
listen 80;
server_name www.yong.com;
# 默认跳转到index.html页面
index index.html;
# 相对路径,相对nginx根目录。也可写成绝对路径
root /data/www;
}
server {
listen 80;
server_name bbs.yong.com;
index index.html;
root /data/bbs;
}
验证结果,使用curl测试,或者浏览器输入域名访问 http://bbs.yong.com:80 http://www.yong.com:80
# curl -xlocalhost:80 www.yong.com
this is yong linux
# curl -xlocalhost:80 bbs.yong.com
this is yong bbs
2、基于端口的虚拟主机配置
使用端口来区分,浏览器使用域名或ip地址:端口号 访问 (注意域名或ip地址保持相同)
server {
listen 8000;
server_name www.yong.com;
root /data/www;
}
server {
listen 8001;
server_name www.yong.com;
root /data/bbs;
}
验证结果,使用curl测试,或者浏览器输入域名访问http://www.yong.com:8000 http://www.yong.com:8001
# curl www.yong.com:8000
this is yong linux
# curl www.yong.com:8001
this is yong bbs
3、基于ip地址的虚拟主机配置
通过ip来访问,需要配置多个ip
ifconfig eth0:1 192.168.22.21
server {
listen 192.168.20.20:80;
server_name www.yong.com;
root /data/www;
}
server {
listen 192.168.20.21:80;
server_name www.yong.com;
root /data/bbs;
}
附 nginx.conf 配置说明:
# 全局区 有一个工作子进程,一般设置为CPU数 * 核数
worker_processes 1;
events {
# 一般是配置nginx进程与连接的特性
# 如1个word能同时允许多少连接,一个子进程最大允许连接1024个连接
worker_connections 1024;
}
# 配置HTTP服务器配置段
http {
# 配置虚拟主机段
server {
# 定位,把特殊的路径或文件再次定位。
location {
...
}
}
server {
...
}
}