上一篇介绍过如何在一个nginx上使用同一个端口部署多个web项目进行访问.具体内容可以参考:nginx支持一个端口访问多个前端项目(http以及https).
现在需求变更,要求访问域名时要直接访问到指定的项目,在域名后面不允许拼接别的路径,具体需求如下:原来的项目访问方式是wx.kwxy.com/A直接访问A项目,wx.kwxy.com/B直接访问B项目.现在要求访问wx.kwxy.com要直接跳转到A项目.修改nginx.conf配置内容如下:
server {
listen 80;
server_name wx.kwxy.com;
#将请求转成https
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
#监听443端口
listen 443;
#域名
server_name wx.kwxy.com;
ssl on;
#ssl证书的pem文件路径
ssl_certificate /usr/local/nginx/ssl_cert/kwxy.com.pem;
#ssl证书的key文件路径
ssl_certificate_key /usr/local/nginx/ssl_cert/kwxy.com.key;
# 项目A
location /{
root /staticresource/activity/A;
index index.html;
}
}
但是这样会存在一个问题,也就是说如果想通过wx.kwxy.com访问其他项目该怎么设置(比如说还是想通过wx.kwxy.com/B直接访问B项目),不能重新部署一个nginx服务器支持多个项目吧.尝试修改了一下下面的配置文件可以满足需求.
server {
listen 80;
server_name wx.kwxy.com;
#将请求转成https
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
#监听443端口
listen 443;
#域名
server_name wx.kwxy.com;
ssl on;
#ssl证书的pem文件路径
ssl_certificate /usr/local/nginx/ssl_cert/kwxy.com.pem;
#ssl证书的key文件路径
ssl_certificate_key /usr/local/nginx/ssl_cert/kwxy.com.key;
# 项目A
location /{
root /staticresource/activity/A;
index index.html;
}
# 项目B
location /B{
alias /staticresource/activity/B;
index index.html;
}
}
这样就可以实现访问A项目时直接使用wx.kwxy.com,访问B项目使用wx.kwxy.com/B.以上是对项目需求变更之后配置文件的修改记录,希望对有同样需求的同学有所帮助!