在nginx.conf的http块中定义变量:
http {
...
set $server_ip_addr "192.168.1.140";
...
}
在server块中使用变量替换IP地址:
server {
listen 7777;
server_name localhost;
charset utf-8;
location / {
root /ky/java/nginx/html/web;
}
location /login/ {
proxy_pass http://$server_ip_addr:8080/kykj/login/;
}
location /hls/ {
proxy_pass http://$server_ip_addr:18080/hls/;
}
...
}
然后nginx容器启动的时候就报错了:
2023/04/14 09:02:20 [emerg] 1#1: "set" directive is not allowed here in /etc/nginx/nginx.conf:33
nginx: [emerg] "set" directive is not allowed here in /etc/nginx/nginx.conf:33
原因:我不该把这句直接加到http块下, 要这样加到http块下的server块下的location里:
这样就没问题
但是我又另外报了一个错误:using uninitialized "server_ip_addr" variable
我另外记录一下吧
其实在http块中也能定义变量的,不过要像这样用:文章来源:https://www.toymoban.com/news/detail-644104.html
geo $server_ip_addr {
default 192.168.1.140;
}
文章来源地址https://www.toymoban.com/news/detail-644104.html
到了这里,关于nginx.conf报错:“set“ directive is not allowed here in xxx(http块下不能用set定义变量)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!