目录
1.前言
1.通过端口区分不同虚拟机
2.通过域名区分虚拟主机
nginx配置虚拟主机就是在一台服务器启动多个网站。
如何区分不同的网站:
Nginx的配置文件:
/usr/local/nginx/conf/nginx.conf
我们使用notepad++远程编辑文件(https://blog.csdn.net/pdsu161530247/article/details/81702176),也可以直接使用vim等进行编辑。
在nginx.conf中最重要的是,这段配置:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
}
可以配置多个server,配置了多个虚拟主机,根据端口区分不同主机。
添加两台虚拟主机完整nginx.conf:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 81;
server_name localhost;
location / {
root html-81;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
[root@localhost nginx]# cp -r html/ html-81
重新加载nginx配置
[root@localhost nginx]# sbin/./nginx -s reload
如果是阿里云服务器记得添加安全组规则
访问nginx,默认的80端口可以访问一个server
通过81端口,可以访问另一个server
通过端口来区分虚拟主机,是不方便的,不可能一个网站使用80端口,另一个网站使用81端口。因为80端口是默认的,用户不需要加80,访问的就是80端口的网站,不可能让用户进入另一个网站时,让他加上端口号81,这是不现实的。而且几乎没有那个网站使用ip来访问的,所以我们可以通过域名区分,配置虚拟主机。
我们先假设一个场景:我手头有两个网站一个淘宝、一个天猫,分别对应域名www.taobao.com、www.tianmao.com。但是我比较穷,我只有一台linux服务器(一个公网ip)。由于一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。所有我们可以通过ngnix配置两个虚拟主机。
这里我们修改hosts(C:\Windows\System32\drivers\etc)文件,配置域名和ip的映射关系,不走dns服务器。
比如:
192.168.25.148 www.taobao.com
192.168.25.148 www.tianmao.com
修改nginx配置(/usr/local/nginx/conf/nginx.conf):
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#端口区分
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 81;
server_name localhost;
location / {
root html-81;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#域名区分
server {
listen 80;
server_name www.taobao.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-taobao;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.tianmao.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-tianmao;
index index.html index.htm;
}
}
}
copy nginx的默认访问资源, 为taobao和tianmao两个站点设置,访问的默认资源
[root@localhost nginx]# cp -r html/ html-taobao
[root@localhost nginx]# cp -r html/ html-tianmao
修改html-taobao中index.html加个淘宝的标识
修改html-taobao中index.html加个天猫的标识
重新加载配置
[root@localhost nginx]# sbin/./nginx -s reload
访问www.taobao.com效果:
访问www.tianmao.com效果:
至此nginx配置虚拟主机完成。