我开始并想使用 Nginx 连接到我的数据库。这是我的sites-enables / default文件:
http {
upstream database {
postgres_server 192.168.0.166 dbname=stardb
user=username password=yourpass;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
location /ip {
postgres_pass database;
postgres_query HEAD GET "SELECT http_host as ip FROM establishment_view where aet = 'NXS_DEV_FLO2'";
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
nginx[7597]: nginx: [emerg] /etc/nginx/sites-enabled/default:17 中不允许使用“http”指令
我发现这个错误很常见,但即使查看其他帖子我也无法解决我的问题。我的文件中有这一行nginx.conf:
include /etc/nginx/sites-enabled/*;
Run Code Online (Sandbox Code Playgroud)
我需要删除sites_enables/default文件中的 http 行吗?
我网站的某些页面上出现 502 错误,我不明白为什么有些页面可以工作,但其他页面会显示此错误:
请求方法:POST 状态代码:502 Bad Gateway Referrer Policy:no-referrer-when-downgrade
我有一个$aet在 lua 中初始化的变量,但我希望我也可以在 nginx 中使用它。
这是我的代码:
location /getIp {
default_type 'application/json';
rds_json on;
content_by_lua '
if ngx.var.host:match("(.*).nexus$") ~= nil then
aet = ngx.var.host:match("(.-)%.")
$aet = aet;
end
';
postgres_pass database;
postgres_query "SELECT ip FROM establishment_view WHERE aet = $aet";
postgres_output rds;
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为在查询中它不知道变量 aet :
nginx: [emerg] 未知的“aet”变量