Nginx配置多虚拟主机(即配置域名)

2,315 阅读2分钟

1.存放站点(即项目)

站点的根目录和域名相同

1.1.创建a域名存放地址

mkdir -p /data/site/a.chen.com

1.2.创建a域名的首页

cd /data/site/a.chen.com
touch inde.html
echo 'this is a from chen com...' > /data/site/a.chen.com/inde.html

1.3.创建b域名存放地址

mkdir -p /data/site/b.chen.com

1.4.创建b域名的首页

cd /data/site/b.chen.com
touch inde.html
echo 'this is b from chen com...' > /data/site/b.chen.com/inde.html

1.5.添加日志存放目录

mkdir -p /data/logs/nginx

2.配置nginx的配置文件

(注:若还没安装nginx的话,详情请看这一篇文章

blog.csdn.net/dushiwodecu…

2.1.进入nginx配置目录

cd /usr/local/nginx/conf/

2.2.编辑nginx.conf

vim nginx.conf

2.2.1.配置nginx日志格式

在nginx.conf中找到如下内容,并且将#注释标志去掉

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

2.2.2.配置nginx主配置内容

a域名服务器

server{
    server_name a.chen.com;
    listen 80;
    root /data/site/a.chen.com;
    access_log /data/logs/nginx/a.chen.com-access.log main;
    location /
    {
    }
}

b域名服务器

server{
    server_name b.chen.com;
    listen 80;
    root /data/site/b.chen.com;
    access_log /data/logs/nginx/b.chen.com-access.log main;
    location /
    {
    }
}

配置解析:

  • server{}:配置虚拟主机必须有的的段
  • server_name:虚拟主机的域名,可以写多个域名,类似于别名,比如说你可以配置成:(这样的话,任何一个域名,内容都是一样的)
    server_name a.chen.com b.chen.com c.chen.com
  • listen:127.0.0.1:80 监听端口
  • root :站点根目录,网站文件存放的地方。(注:站点目录和域名尽量一样)
  • access_log:访问日志
  • location /{}:默认uri

3.检查nginx配置是否正确

/usr/local/nginx/sbin/nginx -t
  • 若出现以下两行ok和successful,表示配置没问题
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

    4.重启nginx

    /usr/local/nginx/sbin/nginx -s reload
  • (注:若是之前没有启动过,则启动即可,但若启动过了,应该重启,不然会出现后面配置成功后但是访问域名却一直是nginx的欢迎界面)

    5.测试

    5.1.Windows下测试

    修改hosts文件:C:\Windows\System32\drivers\etc,添加以下内容:
    192.168.1.111 a.chen.com
    192.168.1.111 b.chen.com

    5.2.Linux下测试

    修改hosts文件
    echo '192.168.1.111 a.chen.com 192.168.1.111 b.chen.com' >> /etc/hosts

    5.3.测试结果

    浏览器直接输入:a.chen.com 和 b.chen.com

    Linux测试:
    curl http://a.chen.com