前言
上一篇介绍过如何在一个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.以上是对项目需求变更之后配置文件的修改记录,希望对有同样需求的同学有所帮助!