Điểm:0

Làm cách nào để chạy hai Máy chủ web Nginx trên cùng một máy?

lá cờ br

Tôi muốn lưu trữ một trang web và chạy một dự án vi dịch vụ trên máy chủ của riêng mình.

  1. Trang web sẽ được chạy với máy chủ web Nginx. Tên miền của trang web sẽ giống như sampleapp.com và trang web này sẽ sử dụng freessl.

  2. Một trong những dịch vụ của dự án Microservice sẽ được chạy với máy chủ web Nginx dưới dạng dịch vụ trong bộ chứa docker. Dịch vụ này sử dụng các tên miền phụ của sampleapp.com của tôi, chẳng hạn như api-dev.sampleapp.com và các tên miền phụ đó cũng sẽ hoạt động với SSL.

Khi cố gắng triển khai các dịch vụ với docker-compose, tôi gặp lỗi sau:

[cảnh báo] 1#1: xung đột tên máy chủ "api-dev.sample.com" trên 0.0.0.0:80, bỏ qua

Mối quan tâm chính là làm cách nào tôi có thể thiết lập ssl bên trong docker. 443 là cổng mặc định cho HTTPS.

Tệp cấu hình Nginx của microservice của tôi như sau.

worker_processes tự động;

sự kiện {
  công_nhân kết_nối 1024 ;
}

http {

  người phục vụ {
    nghe 80 default_server;
    tên máy chủ "";
    trả lại 444;
  }

  người phục vụ {
    server_name game-dev.sampleapp.com;

    địa điểm / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Máy chủ $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_http_version 1.1;
      proxy_set_header Nâng cấp $http_upgrade;
      proxy_set_header Kết nối "nâng cấp";

      proxy_pass http://game_nodes;
      proxy_redirect tắt;
    }
  }
  người phục vụ {
    nếu ($host = game-dev.sampleapp.com) {
      trả lại 301 https://$host$request_uri;
    }


    nghe 80;
    nghe [::]:80;
    server_name game-dev.sampleapp.com;
    trả lại 404;
  }

  ngược dòng game_nodes {
# kích hoạt phiên dính
 # ip_hash;
    trò chơi máy chủ-alpha:3000;
    giữ nguyên 8;
  }

  người phục vụ {
    server_name api-dev.sampleapp.com;

    địa điểm / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Máy chủ $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://main_nodes;
      proxy_redirect tắt;

    }
  }

  người phục vụ {
   # nếu ($host = api-dev.sampleapp.com) {
    # trả lại 301 https://$host$request_uri;
    #}

    nghe 80;
    nghe [::]:80;
    server_name api-dev.sampleapp.com;
    trả lại 404;
  }

  thượng nguồn main_nodes {
    máy chủ chính-alpha:8000;
    máy chủ chính-beta:8000;
    giữ nguyên 8;
  }
}

Nginx config fle của website như bên dưới

người phục vụ {
    nghe 8080 ;
    nghe [::]:8080;
    nghe 8443 ssl http2;
    nghe [::]:8443 ssl http2;

    server_name sampleapp.com www.sampleapp.com;
    gốc /var/www/sampleapp.com;
    chỉ số index.html;

    ssl_certificate /etc/ssl/certs/sampleapp.com.pem;
    ssl_certificate_key /etc/ssl/private/sampleapp.com.key;
    ssl_client_certificate /etc/ssl/certs/origin-pull-ca.pem;
    bật ssl_verify_client;

    client_max_body_size 100M;
  
    tự động tắt;

    địa điểm / {
        try_files $uri $uri/ =404;

    }

}

Tôi là nhà phát triển, không phải quản trị viên hệ thống, vì vậy tôi gặp khó khăn trong việc tìm ra cách tốt nhất để thực hiện việc này.

djdomi avatar
lá cờ za
nginx trong các trường hợp phổ biến có các thư mục site-available và site-enable để thêm vhost vào dịch vụ.
Điểm:1
lá cờ es

Một trong những giải pháp khả thi ở đây là chạy 3 docker container với Nginx.

  1. lắng nghe trên các cổng 80 và 443, giảm tải ssl và hoạt động như một proxy ngược cho hai vùng chứa khác.
  2. quay trang web
  3. quay vi dịch vụ

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.