简短版本:
是否可以将nginx更改服务器名称“myexample.com”更改为“example.com”并将其返回给使用它的应用程序?应用程序在nginx的服务器标签中使用uwsgi_pass。
长版:
我有一个运行Flask应用程序的nginx服务器。它使用uwsgi_pass和套接字来运行应用程序。 我的Flask应用程序有
app.config['SERVER_NAME'] = 'example.com'
解决子域(我在子域上工作的蓝图很少)。我还注册了另一个子域名,例如myexample.com,我想将其重定向到此服务器IP并执行完全相同的操作。 但我知道因为烧瓶使用“example.com”进行子域解析,它不会工作!
我无法在烧瓶中找到它,但我想知道是否可以将“myexample.com”的nginx更改服务器名称改为“example.com”然后将其传递给应用程序?我想这样吧应该工作正常。
由于
答案 0 :(得分:0)
Nginx支持正则表达式是可能的。
不确定Flask,但是,例如,在PHP上:
server
{
server_name ~^(?<project>.+)\.dev$;
set $root /var/www/$project;
root $root;
error_log /var/log/nginx/error.log;
location ~ \.php$ {
fastcgi_param MAGE_RUN_CODE $project;
fastcgi_read_timeout 3600;
include /etc/nginx/fastcgi_params;
fastcgi_pass development;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
}
}
PHP将有一个名为$MAGE_RUN_CODE
的变量,其值为$project
,与正则表达式匹配。
答案 1 :(得分:0)
你可以用这个
proxy_set_header HOST "example.com" ;
proxy_pass http://127.0.0.1/;
proxy_buffering off;