nginx怎么实现在一个服务器可以访问多个网站

在一台服务器上,访问不同的网站

通常有两种区分方式:

1.通过监听的端口号

2.通过域名

1.通过端口访问不同的主机:

nginx的配置文件:

/usr/local/nginx/conf/nginx.conf

centos文件默认编码格式 latin1

查看编码格式的命令: :set fileencoding

#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid    logs/nginx.pid;

events {
  worker_connections 1024;
}

##一个http节点
http {  
  include    mime.types;
  default_type application/octet-stream;
  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  #         '$status $body_bytes_sent "$http_referer" '
  #         '"$http_user_agent" "$http_x_forwarded_for"';
  #access_log logs/access.log main;
  sendfile    on;
  #tcp_nopush   on;
  #keepalive_timeout 0;
  keepalive_timeout 65;
  #gzip on;
 #server 节点,即 你需要访问网站的配置
 #一个server节点,就是一个虚拟主机
  server {
    listen    80;  #监听的端口号,访问网站 默认是80端口
    server_name localhost;  #即访问的域名
    #charset koi8-r;
    #access_log logs/host.access.log main;
    location / {  #定位
      root  html;  #定位的是nginx根目录下的 html文件夹
      index index.html index.htm;  #设置网站首页
    }
  }
}

此时 可以配置多个server,也就是配置了不同的主机

添加虚拟主机:(通过端口号 区别)

server {
    listen    81;
    server_name localhost;
    #charset koi8-r;
    #access_log logs/host.access.log main;
    location / {
      root  html-81;
  #nginx根目录下 新建的html81 文件夹
      index index.html index.htm;
    ``
  }

编辑好文件之后,我们重新加载配置文件

通过命令: ./nginx -s reload

效果:

nginx怎么实现在一个服务器可以访问多个网站

我们知道,当一个服务器上配置多个网站时,我们不可能通过端口号来区分它们,所以接下来 我需要通过域名来区分

2.通过域名区分不同的虚拟主机

什么是域名??

域名就是网址

例如:www.baidu.com

通常我们在访问域名的时候,我们需要通过dns服务器解析域名

dns服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。

一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。

本地测试可以修改hosts文件。

修改window的hosts文件:(c:\windows\system32\drivers\etc)

可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走dns服务器!!!!

在刚刚的nginx.conf文件下 继续配置:

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.baidu.com;
    #charset koi8-r;
    #access_log logs/host.access.log main;
    location / {
      root  html-baidu;
      index index.html index.htm;
    }
  }
}

域名的配置:

192.168.25.148 www.test.com
192.168.25.148 www.yiyou.com

重启nginx服务

观察下效果:

nginx怎么实现在一个服务器可以访问多个网站

以上就是nginx怎么实现在一个服务器可以访问多个网站的详细内容,更多请关注其它相关文章!