直接進入正題 ...
1 name="wss300"
2
3 upstream $name {
4
5 server 127.0.0.1:8080; #CB
6 }
小弟需要在 nginx.conf裡面配置一些宣告,但是會報錯
nginx: [emerg] unknown directive "name="wss300"" in /etc/nginx/conf.d/scott/scott.com/CB-scott-ws.conf:3
過程:
有事先做bash去測試執行狀況
#!/bin/bash
name="wss300"
name2="upstream $name"
echo $name2
執行結果也很正確
upstream wss300
但是代入到 nginx.conf裡面似乎就不能這樣使用了
已經Google過了,不曉得有沒有什麼特別的解法
備註:
set $cors ""; 的方法也試過了
set $cors ""; 需要包在 Server裡面
但是upstream又不能包在 Server裡面
而且set $name "wss300"; 透過bash去執行,只會得到空值
12:11 更新
目前使用的方式是 upstream 手 key
upstream wss300 {
server 127.0.0.1:8080; #CB
}
然後
Server {
....
....
....
set $name "wss300";
....
....
....
}
proxy_pass http://$name;
備註:proxy_pass http://$name; 的部分 是打算從外面抓進來用
查了很多文章
很多都是說要用 lua-nginx-module
去帶入 environment variable
實測
#myTarget=http://127.0.0.1:8081
env myTarget;
...
location / {
set_by_lua $myTarget 'return os.getenv("myTarget")';
proxy_pass $myTarget;
}
不知道是不是你要的
我後來改用比較笨的方法解決了 @@
upstream wss300 {
server 127.0.0.1:8080;
}
server {
# 啟用 SSL 服務
listen 8080 ssl http2;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# 設定 SSL 憑證
ssl_certificate /etc/letsencrypt/live/scott.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/scott.com/privkey.pem;
server_name
wss1.scott.com;
set $name "wss300";
include nginxconfig.io/scott/scott-Cors.conf;
}
然後scott-Cors.conf;
proxy_pass http://$name;
這樣解決