位置:首页-常见问题-nginx 配置虚拟主机

nginx 配置虚拟主机

  安装nginx 以后,第一件想到的事应该就是去创建虚拟主机,虚拟主机允许我们在同一台服务器上运行多个网站,我们可以为不同的域名绑定不同的目录,访问这个域名的时候,会打开对应目录里面的东西。下面来看一下为 nginx 配置虚拟主机。先进入到 nginx 配置文件目录:

  cd /etc/nginx/conf.d

  复制这个目录里的 default.conf ,复制以后的名字可以使用你的虚拟主机名字。比如创建一个 www.yinzhong.net 的虚拟主机。复制文件可以使用 cp 命令,像这样:

  cp default.conf www.yinzhong.net.conf

  再去编辑一下这个复制以后的配置文件,可以使用 vim 命令:

  vim www.yinzhong.net.conf

  你会看到像这样的代码:

  server {

  listen 80;

  server_name localhost;

  #charset koi8-r;

  #access_log /var/log/nginx/log/host.access.log main;

  location / {

  root /usr/share/nginx/html;

  index index.html index.htm;

  }

  ...

  }

  server_name 就是主机名,也就是跟这个虚拟主机绑定在一块儿的域名,我事先把 www.yinzhong.net 指向了服务器,这个虚拟主机就是为它准备的,所以,server_name 后面的东西就是 www.yinzhong.net 。紧接着 server_name 下面可以是一个 root,就是这个虚拟主机的根目录,也就是网站所在的目录。比如我们要把 www.yinzhong.net这个网站的文件放在 /home/www/www.yinzhong.net下面,那么这个 root 就是这个路径。

  然后去掉 location / 里面的 root 这行代码。再在 index 后面加上一种索引文件名,也就是默认打开的文件,这里要加上一个 index.PHP ,这样访问 www.yinzhong.net就可以直接打开 root 目录下面的 index.php 了。稍后我们再去安装 php 。修改之后,看起来像这样:

  server {

  listen 80;

  server_name www.yinzhong.net;

  

  #charset koi8-r;

  #access_log /var/log/nginx/log/host.access.log main;

  location / {

  root /home/www/www.yinzhong.net;

  index index.php index.html index.htm;

  }

  

  location ~ \.php$ {

  root /home/www/www.yinzhong.net;

  fastcgi_pass 127.0.0.1:9000;

  fastcgi_index index.php;

  fastcgi_param SCRIPT_FILENAME /home/www/www.yinzhong.net$fastcgi_script_name;

  include fastcgi_params;

  }

  ...

  }

  这个配置文件先修改到这,稍后,我们再回来继续修改一下它。保存一下,按 esc ,输入 :wp(保存并退出)。现在虚拟主机应该就可以使用了。主机的域名是nginx.ninghao.net,访问它的时候,打开的是 /home/www/www.yinzhong.net 这个目录里面的东西,你可以在这个目录下放点东西。

  重启 nginx 或者重新加载 nginx 可以让配置文件生效。

  service nginx reload

  现在,打开浏览器,输入你为虚拟主机设置的域名,看看是否能打开你指定的目录里的东西。

  如果ecs上只放一个网站就直接修改default.conf文件,server_name不变其他修改方法同上。


收起
展开