Điểm:0

Proxy một trang web từ Docker thông qua Nginx mà không hoạt động như localhost

lá cờ co

Làm cách nào tôi có thể ủy quyền một trang web từ Docker thông qua Nginx mà không hoạt động như máy chủ cục bộ?

Thiết lập hiện tại của tôi bao gồm một máy chủ Ubuntu với một vài bộ chứa Docker có cổng bị lộ.Bộ chứa Docker chỉ được hiển thị cục bộ. Sự tiếp xúc trên Internet bao gồm một máy chủ Nginx ủy quyền các bộ chứa Docker cho các tên miền phụ nhất định.

Trong một vùng chứa Docker, tôi chạy Wordpress. tôi kéo nó từ trung tâm docker sử dụng tệp YML này:

phiên bản: '3.1'

dịch vụ:

  báo chí:
    container_name: myapp-cms
    hình ảnh: wordpress
    khởi động lại: luôn luôn
    cổng:
      - 8087:80
    môi trường:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: người dùng ví dụ
      WORDPRESS_DB_PASSWORD: ví dụ
      WORDPRESS_DB_NAME: ví dụdb
    khối lượng:
      - /srv/wordpress/cms:/var/www/html

  đb:
    container_name: myapp-db
    hình ảnh: mysql:5.7
    khởi động lại: luôn luôn
    môi trường:
      MYSQL_DATABASE: ví dụdb
      MYSQL_USER: người dùng ví dụ
      MYSQL_PASSWORD: ví dụ
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    khối lượng:
      - /srv/wordpress/db:/var/lib/mysql

Bộ chứa Docker này hiển thị cổng nội bộ 8087 mà sau đó tôi ủy quyền cho mysubdomain.mydomain.com. Đây là tệp cấu hình Nginx:

người phục vụ {
        gốc /var/www/mysubdomain.mydomain.com;
        chỉ mục index.html index.htm index.nginx-debian.html;

        server_name mysubdomain.mydomain.com;

        client_max_body_size 1000M;

        địa điểm / {
                # try_files $uri $uri/ =404;
                proxy_pass http://localhost:8087;
        }

    nghe 443 ssl; # được quản lý bởi Certbot
    ssl_certificate /etc/letsencrypt/live/mydomain.com-0003/fullchain.pem; # được quản lý bởi Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0003/privkey.pem; # được quản lý bởi Certbot
    bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}
người phục vụ {
    nếu ($host = mysubdomain.mydomain.com) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot


        nghe 80;

        server_name mysubdomain.mydomain.com;
    trả lại 404; # được quản lý bởi Certbot
}

Vấn đề là trang (trong trường hợp này là Wordpress) vẫn sử dụng máy chủ cục bộ:8087 cho mỗi liên kết. Điều này phá hủy mọi khả năng nhấp vào thứ gì đó và cũng phá hủy tải thư viện CSS và JavaScript.

nhập mô tả hình ảnh ở đây

CHỈNH SỬA 1:

Tôi đã thêm hai dòng sau vào wp-config.php:

xác định ('WP_HOME','https://mysubdomain.mydomain.com');
xác định ('WP_SITEURL','https://mysubdomain.mydomain.com');

Nó tải thành công trang thiết lập ngay và cũng điều chỉnh tên miền. Tôi có thể thiết lập thành công WordPress, nhưng ngay sau khi tôi lưu thiết lập (tên người dùng, mật khẩu, email), trình duyệt sẽ tải một trang trống. gọi curl -X NHẬN https://mysubdomain.mydomain.com trả về một phản hồi trống.

Điểm:1
lá cờ cg

Hãy thử thiết lập Địa chỉ trang webĐịa chỉ WordPress .

  1. Đi đến Cài đặt >> Chung
  2. Đặt địa chỉ WordPress (URL) và địa chỉ trang bằng fqdn của bạn

nhập mô tả hình ảnh ở đây

Thẩm quyền giải quyết

Để biết thêm thông tin chính thức: Tài liệu WordPress

Socrates avatar
lá cờ co
Cảm ơn bạn đã thông tin. Tôi chỉ có thể tải trang ban đầu, nhưng mọi liên kết trong đó đều dẫn đến `http://localhost:8087/...` có nghĩa là không thể đăng nhập. Sau đó, tôi thiết lập Docker WordPress cục bộ trên máy tính xách tay của mình, sau đó đặt Địa chỉ WordPress và Địa chỉ trang web thành `https://mysubdomain.mydomain.com`, sau đó sao chép cơ sở dữ liệu cục bộ và nội dung CMS sang máy chủ web từ xa . Mặc dù về mặt kỹ thuật nó nên từ, nhưng vì một số lý do, nó vẫn không hoạt động. Trang hoàn toàn không tải và `curl -X GET https://mysubdomain.mydomain.com` không dẫn đến phản hồi nào cả.
Socrates avatar
lá cờ co
Đã thêm **EDIT 1** vào bài đăng đầu tiên của tôi với cấu hình phần nào hoạt động lúc đầu, nhưng không thành công sau đó (được mô tả ở trên).

Đă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.