使用upstream让后端程序可以在nginx后启动
之前用docker-compose启动nginx和后端程序时,后端程序如果在nginx后启动会造成报错。虽然可以使用docker-compose的depend on 解决还是不够优雅。将proxy_pass后的主机名和端口定义为upstream,然后修改proxy_pass的值为upstream的名。修改完后 启动nginx无需等待后端启动完成即可自行启动。所以考虑使用upstream解决。
·
之前用docker-compose启动nginx和后端程序时,后端程序如果在nginx后启动会造成报错。虽然可以使用docker-compose的depend on 解决还是不够优雅。
所以考虑使用upstream解决。
原始配置
server {
listen 80;
listen [::]:80;
server_name gitlab.example.com;
client_max_body_size 500M;
location =/robots.txt {
default_type text/html;
add_header Content-Type "text/plain; charset=UTF-8";
return 200 "User-Agent: *\nDisallow: /";
}
#forbidden UA
if ($http_user_agent ~ "Bytespider|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|python-requests|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) {
return 403;
}
location / {
proxy_pass http://frps:4000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
修改后的配置
upstream git-backend {
server frps:4000;
}
server {
listen 80;
listen [::]:80;
server_name gitlab.example.com;
client_max_body_size 500M;
location =/robots.txt {
default_type text/html;
add_header Content-Type "text/plain; charset=UTF-8";
return 200 "User-Agent: *\nDisallow: /";
}
#forbidden UA
if ($http_user_agent ~ "Bytespider|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|python-requests|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) {
return 403;
}
location / {
proxy_pass http://git-backend;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
修改点如下:
将proxy_pass后的主机名和端口定义为upstream,然后修改proxy_pass的值为upstream的名。
修改完后 启动nginx无需等待后端启动完成即可自行启动
更多推荐

所有评论(0)