Mat*_*rix 19 nginx amazon-ecs docker
我在ECS服务器上运行docker-nginx.我的nginx服务突然停止,因为其中一个服务器的proxy_path无法访问.错误如下:
[emerg] 1#1: host not found in upstream "dev-example.io" in /etc/nginx/conf.d/default.conf:988
Run Code Online (Sandbox Code Playgroud)
我的配置文件如下:
server {
listen 80;
server_name test.com;
location / {
proxy_pass http://dev-exapmle.io:5016/;
proxy_redirect off;
##proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
server {
listen 80 default_server;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Run Code Online (Sandbox Code Playgroud)
我在配置文件中有很多服务器,即使一台服务器出现故障,我也需要运行nginx.有没有办法解决它?
任何解决此问题的建议都将不胜感激.
Dam*_*ien 10
就我而言,仅添加解析器并不能解决问题。但是我可以通过为主机使用变量来解决它。另外,我想使用127.0.0.11(这是固定IP)的Docker DNS更有意义。
例:
server {
listen 80;
server_name test.com;
location / {
resolver 127.0.0.11;
set example dev-example.io:5016
proxy_pass http://$example;
}
}
Run Code Online (Sandbox Code Playgroud)
我在此页面上找到了变通方法。
如果您的站点已关闭,请包括防止Nginx崩溃,包括解析器指令,如下所示:
server {
listen 80;
server_name test.com;
location / {
resolver 8.8.8.8
proxy_pass http://dev-exapmle.io:5016/;
proxy_redirect off;
...
Run Code Online (Sandbox Code Playgroud)
警告!使用公共DNS会在后端造成安全风险,因为您的DNS请求可能会被欺骗.如果这是一个问题,您应该将解析器指向安全的DNS服务器.
| 归档时间: |
|
| 查看次数: |
27717 次 |
| 最近记录: |