>记录生活, 工作的点点滴滴...

Nginx判断二级域名

Nginx是目前非常流行的服务器软件, 可以轻松进行Web服务配置, 代理配置等. 本文记录下如何根据二级域名映射到不同应用.

Nginx对Web服务的配置, 主要在server块. server一般结构如下:

server{
#监听端口号
listen 80;
root /path/to/html/root
#服务器名: 可以多个, 以空格分隔.
server_name localhost www.mysite.com www.*.com ~^(www\.)?(?<domain>.+)$;

#获取二级域名
if ( $http_host ~* "^(w+\.)?(\w+?)(\.?)bunshinn\.cn" ) {
set $domain $2/;
}
if ($domain = "/"){
set $domain "";
}

location / {
#根据路径进行转发
proxy_pass http://127.0.0.1:5000/$domain;
}
}

主要处理思路是, 获取二级域名, 然后根据域名进行不同的转发.

在fastcgi中, 则需要将domain添加到: fastcgi_param PATH_INFO $fastcgi_script_name;相应修改为: fastcgi_param PATH_INFO $domain$fastcgi_script_name;

今天就到这里, nginx功能强大, 这里只是对自己需求的惊鸿一瞥. 本意是准备根据不同的二级域名, 映射到相应的flask子应用上, 但随即而来的问题是, 如何在flask端根据不同Blueprint设置不同的url路径, 牵涉太多, 暂此记录, 有空来补吧.

发表于:2019-01-19 21:12:45浏览(347) 评论(0) Web