当一个服务器需要承载多个网站时,我们可以用Nginx实现多站点共用同一IP和端口的方案。其实现的主要步骤如下:
-
准备工作:确保已经安装了Nginx,并且位于系统环境变量中,可以通过nginx -v命令查看版本信息。
-
创建站点目录:为每一个网站创建所需的目录,假设有两个站点需要创建:
-
站点A的目录是:/data/www/siteA/
-
站点B的目录是:/data/www/siteB/
-
创建站点配置文件:为每个站点创建一个Nginx配置文件,假设站点A使用的域名是www.sitea.com,站点B使用的域名是www.siteb.com。我们需要在Nginx的config目录下新建两个配置文件,文件名分别为siteA.conf和siteB.conf,并且在这两个配置文件中分别进行如下的配置:
-
配置文件siteA.conf:
server {
listen 80;
server_name www.sitea.com;
location / {
root /data/www/siteA/;
index index.html index.htm;
}
}
- 配置文件siteB.conf:
server {
listen 80;
server_name www.siteb.com;
location / {
root /data/www/siteB/;
index index.html index.htm;
}
}
解释一下以上的配置信息:
- listen:配置监听的端口。
- server_name:配置站点域名。
-
location:配置站点文件夹的具体路径,指定站点根目录位置。
-
配置Nginx默认站点:在Nginx的默认站点中添加如下的配置信息,用于使Nginx能够处理所有未被显式指定的请求,也就是访问IP地址所对应的站点:
server {
listen 80 default_server;
server_name _;
root /data/www/default/;
index index.html index.htm;
}
解释一下以上的配置信息:
- default_server:配置Nginx默认站点。
- server_name:配置站点域名为通配符,所有请求都将被匹配。
- root:如果没有任何一个配置文件可以匹配到请求,就会将请求发送到这个默认站点的根文件夹。
- index:配置默认站点的默认首页。
注意,为了让以上配置更好的生效,我们需要确保Nginx已经配置好了include代码块,即nginx.conf文件中含有如下的代码块:
http {
...
include /etc/nginx/conf.d/*.conf;
...
}
- 测试运行:启动Nginx,并通过浏览器分别访问www.sitea.com和www.siteb.com域名所对应的站点根目录中的index文件,如index.html或index.php。如果能够正确访问到,则说明Nginx已经成功整合多个站点并提供了服务。
总结:
通过以上步骤,我们就可以非常容易地使用Nginx实现多个站点共用同一IP和端口,从而最大化地减少服务器资源的浪费与消耗。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nginx配置多个站点共用80端口的解决方法 - Python技术站