nginx高性能WEB服务器系列之五--实战项目线上nginx多站点配置

时间:2023-03-05 12:42:38

nginx系列友情链接:
nginx高性能WEB服务器系列之一简介及安装
https://www.cnblogs.com/maxtgood/p/9597596.html
nginx高性能WEB服务器系列之二命令管理
https://www.cnblogs.com/maxtgood/p/9597990.html
nginx高性能WEB服务器系列之三版本升级
https://www.cnblogs.com/maxtgood/p/9598113.html
nginx高性能WEB服务器系列之四配置文件详解
https://www.cnblogs.com/maxtgood/p/9598333.html
nginx高性能WEB服务器系列之五--实战项目线上nginx多站点配置
https://www.cnblogs.com/maxtgood/p/9598610.html
nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查
https://www.cnblogs.com/maxtgood/p/9599068.html
nginx高性能WEB服务器系列之七--nginx反向代理
https://www.cnblogs.com/maxtgood/p/9599335.html
nginx高性能WEB服务器系列之八--nginx日志分析与切割
https://www.cnblogs.com/maxtgood/p/9599542.html
nginx高性能WEB服务器系列之九--nginx运维故障日常解决方案
https://www.cnblogs.com/maxtgood/p/9599752.html

注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

nginx的强大之处不必要我细说,当初第一次接触nginx的时候就发现了它的强大之处,并且自我觉得非常有必要出一篇记录nginx的各个功能及坑点。

欢迎大家对nginx感兴趣的朋友们来一起学习与及时提出错误及误点。有问题的可以在评论区@我。

一:nginx多站点配置

在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器同时会配置N个虚拟域名主机,即多个域名对于同样一个80(亦可以非常规)端口。然后服务器IP数量很多,也可以配置基于多个IP对应同一个端口。这里具体介绍两种种类,方法大概相同,实现结果不同。

方法一:

需求:同个端口,访问域名不同,访问页面不同。

vim修改nginx.conf server段配置内容如下:

server {
listen ;
server_name www.a.com;
#access_log logs/host.access.log main;
location / {
root html/a;
index index.html index.htm;
} server {
listen ;
server_name www.b.com;
#access_log logs/host.access.log main;
location / {
root html/b;
index index.html index.htm;
}

解释:创建两个不同的目录mkdir –p /usr/local/nginx/html/{a,b},然后分别在两个目录创建两个不同的index.html网站页面即可。通过客户端配置hosts指向两个域名,然后在IE浏览器访问测试效果。

方法二:

需求:同个端口,访问一级域名相同,二级域名不同,访问页面不同。(根据域名后缀区分访问页面)

vim修改nginx.conf server段配置内容如下:

server {
listen ;#####这里使用了非常规端口,只需要解析到以下使用到的sjb.suhuayue.com域名中即可 server_name sjb.suhuayue.com _;
access_log logs/host.access.log main;
error_log logs/error.log;
location / {
index index.html index.htm;
}
location ^~ /a/ {
add_header X-Frame-Options DENY;
proxy_set_header X-Client-Really-IP $remote_addr;
alias /opt/qypay/a/;
index index.html index.htm;
} location ^~ /b/ {
add_header X-Frame-Options DENY;
alias /opt/qypay/b/;
proxy_set_header X-Client-Really-IP $remote_addr;
index index.html index.htm;
}
}

解释:以上配置成功后,sjb.suhuayue.com/a/为页面一,sjb.suhuayue.com/b/为页面二。

注意几点:

 以上配置文件中alias /opt/qypay/a/;这里必须以/结尾,因为你制定的是一个目录
如果现实页面的时候,页面能读取到,但是显示不出来,那么就是解析问题,可配合前端进行询问前端为哪种解析。
访问域名的时候,如下所诉相同,域名+location关键词 访问的时候,必须以/结尾,如:http://sjb.suhuayue.com/a/是正确的。http://sjb.suhuayue.com/a为错误的。

至此,基本上多站点访问配置也解释的差不多了。