【问题标题】:Unknown "server" variable from nginx来自 nginx 的未知“服务器”变量
【发布时间】:2019-04-17 07:09:26
【问题描述】:

我正在将容器化的 nginx 服务器部署到 AWS 上。但是,当我尝试访问它时,我从浏览器收到“无法连接”错误。日志文件给我错误:nginx: [emerg] unknown "server" variable

这是我的 prod.conf 文件:

server {
    listen 80;

    location / {
        proxy_pass          http://users:5000;
        proxy_redirect      default;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Host $server-name;
    }
}

这是在 Dockerfile-prod 文件中:

FROM nginx:1.15.8-alpine

RUN rm /etc/nginx/conf.d/default.conf
COPY /prod.conf /etc/nginx/conf.d

compose-prod.yml 文件:

version: '3.7'

services:

  users:
    build:
    context: ./services/users
    dockerfile: Dockerfile-prod
  expose:
    - '5000'
  environment:
    - FLASK_ENV=production
    - APP_SETTINGS=project.config.ProductionConfig
    - DATABASE_URL=postgres://postgres:postgres@users-db:5432/users_prod
    - DATABASE_TEST_URL=postgres://postgres:postgres@users-db:5432/users_test
  depends_on:
    - users-db

users-db:
  build:
    context: ./services/users/project/db
    dockerfile: Dockerfile
  expose:
    - '5432'
  environment:
    - POSTGRES_USER=postgres
    - POSTGRES_PASSWORD=postgres

nginx:
  build:
    context: ./services/nginx
    dockerfile: Dockerfile-prod
  restart: always
  ports:
    - 80:80
  depends_on:
    - users

为什么会出现这个错误?

【问题讨论】:

    标签: docker nginx amazon-ec2


    【解决方案1】:

    您应该使用带下划线的$server_name 而不是$server-name http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name

    【讨论】:

    • 不敢相信我被这个下划线困了 5 天!
    • 我仍然无法连接到应用程序。现在一切都是绿色的(感谢您),但浏览器抛出“无法连接”。
    猜你喜欢
    • 2018-04-21
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    相关资源
    最近更新 更多