在使用Linux常见的web服务器进行搭建网站运行环境时,一般默认只设置了一个站点,那么怎样实现多个站点的绑定呢?
首先我们打开usr/lcoal-nginx/conf/目录中的nginx.conf配置文件.
添加如下代码:
include /usr/local/nginx/conf/vhosts/*.conf
即在nginx的配置模块中加入需要创建的独立网站的配置文件.
在nginx文件夹的conf文件夹里新建vhosts文件夹.
创建一个配置文件vhost.conf:
添加代码如下:
server {
listen 80;
server_name www.xxx.com xxx.com;
location / {
root /data/wwwroot/wz1;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
其中listen设置的监听端口为80,server_name设置主机绑定的域名多个可用空格隔开,然后location里root设置网站的目录wz1,继续设置服务器错误返回的页面即可简单设置好其中一个网站的绑定.当用户访问网站域名时,请求就会达到nginx80端口,然后适配器将绑定的服务器目录中静态文件返回.
同理多个网站绑定我们就可以在vhosts目录中创建多个,如:vhosta.conf、vhostb.conf、vhostc.conf
修改server_name绑定的域名、root /data/wwwroot/指定的网站目录 即可完成多站点多域名的绑定.
当然我们也可以设置在一个文件:
将vhost.conf里的server代码段复制为多份,然后修改绑定域名以及目录即可.
server {
listen 80;
server_name www.xxx.com xxx.com;
location / {
root /data/wwwroot/wz1;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.bbb.com bbb.com;
location / {
root /data/wwwroot/wz2;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
如果还需网站能够以https访问我们还需要配置每个站点的https.
将代码修改为:
server {
listen 80;
server_name www.xxx.com xxx.com;
return 301 https://www.xxx.com$request_uri;
location / {
root /data/wwwroot/wz1;
try_files $uri $uri/ /index.html;
}
}
server {
listen 443 ssl;
server_name www.xxx.com xxx.com;
ssl_certificate /usr/local/nginx/cert/wz1/公共密匙.pem;
ssl_certificate_key /usr/local/nginx/cert/wz1/私匙.key;
location / {
root /data/wwwroot/wz1;
try_files $uri $uri/ /index.html;
}
}
相比与http的配置我们在代码中新添加了return 301 https://www.xxx.com$request_uri;,他的作用是让http自动跳转到https.如不需要可以删除该行代码.增加了443端口的配置以及设置了用于https加密的ssl证书ssl_certificate公匙以及ssl_certificate_key私匙.
多个站点同理在vhosts创建多个或者在vhost文件中将代码复制多份修改.
最后保存设置重启nginx服务器即可完成在Linux下为nginx服务器配置多个站点.