nginx 配置多个主机

Posted codeAB

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 配置多个主机相关的知识,希望对你有一定的参考价值。

我现在想配置 两个站点,通过域名来区分访问不同的网站目录

比如有个域名  baidu.com   第二个域名  google.com,我有两个网站目录,

/opt/web/baidu;   /opt/web/google;

访问 baidu.com的时候访问  地一个目录的网站,google.com 访问第二个目录;

首先这两个域名都不是我的,为了达到讲解效果,先修改本地 hosts文件  ,让这两个域名暂时属于我;

1 sudo vim /etc/hosts
2 添加:
3 127.0.0.1   baidu.com   google.com

查看配置文件  /etc/nginx/nginx.conf (通过 apt安装的 nginx 配置文件位置),里面有一行

include /etc/nginx/sites-enabled/*;

如果前面有 #  注释了  就打开,有了这句话 ,所有放在  sites-enabled下面的文件都会被当作是配置文件来读取;

在下面新建两个文件  baidu.conf  ; google.conf ;

在 baidu.conf中 填充以下内容:

 1 server {
 2         listen 80  ;
 3 
 4         root /opt/web/baidu;
 5 
 6         # Add index.php to the list if you are using PHP
 7         index index.html index.php ;
 8 
 9         server_name baidu.com www.baidu.com;
10 
11         location / {
12                 try_files $uri $uri/ /index.php?$query_string;
13         }
14 
15         #
16         location ~ \.php$ {
17                 include snippets/fastcgi-php.conf;
18 
19                 fastcgi_pass unix:/run/php/php7.0-fpm.sock;
20         }
21 
22         location ~ /\.ht {
23                 allow all;
24         }
25 }

google.conf和上面一样,只需把  相应的  baidu  改为 google

通过 apt 安装的  nginx  在  sites-enabled下面会有一个默认的  default 文件  ,里面有一个默认的配置,会有影响,把里面内容全比注释了,或者删除;

好了 ,重启  nginx   ;

sudo  service nginx restart    或者   sudo nginx -s reload

打开浏览器  输入  google.com   显示的是 /opt/web/google/index.html 的内容,

baidu.com   显示的是 /opt/web/baidu/index.html 的内容;

 

以上是关于nginx 配置多个主机的主要内容,如果未能解决你的问题,请参考以下文章

nginx 配置

Nginx 使用多个.conf文件配置多个虚拟主机server的方法

Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试

nginx配置多个虚拟主机(mac)

nginx配置多个虚拟主机vhost

Nginx虚拟主机(Virtual Host)配置