Điểm:0

Nginx: Chạy nhiều ứng dụng web trên cùng một máy chủ bằng tên miền phụ

lá cờ in

tôi đang có một Ubuntu 20.04.1 LTS và tôi đang chạy nginx/1.18.0 (Ubuntu).

Về cơ bản, tôi có ba tệp cấu hình trong thư mục của mình /etc/nginx/sites-available vì tôi muốn định tuyến các yêu cầu tới:

  1. myserver.com
  2. immos.myserver.com
  3. item.myserver.com

Của tôi myserver.com tập tin cấu hình trông giống như sau:

người phục vụ {
    server_name myserver.com www.myserver.com;
    root /var/www/main-application/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    chỉ mục index.html index.htm index.php;

    bộ ký tự utf-8;

    địa điểm / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
    vị trí = /robots.txt { access_log off; log_not_found tắt; }

    error_page 404 /index.php;

    vị trí ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        bao gồm fastcgi_params;
    }

    vị trí ~ /\.(?! nổi ​​tiếng).* {
        Phủ nhận tất cả;
    }


    nghe 443 ssl; # được quản lý bởi Certbot
    ssl_certificate /etc/letsencrypt/live/myserver.com/fullchain.pem; # được quản lý bởi Certbot
    ssl_certificate_key /etc/letsencrypt/live/myserver.com/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 = www.myserver.com) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot


    nếu ($host = myserver.com) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot


    nghe 80;
    server_name myserver.com www.myserver.com nlg.myserver.com;
    trả lại 404; # được quản lý bởi Certbot




}

Nginx-config của tôi immos.myserver.com trông giống như sau:

người phục vụ {
    nghe 80;
    server_name immos.myserver.com;
    gốc /var/www/immos-application/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    chỉ mục index.html index.htm index.php;

    bộ ký tự utf-8;

    địa điểm / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
    vị trí = /robots.txt { access_log off; log_not_found tắt; }

    error_page 404 /index.php;

    vị trí ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        bao gồm fastcgi_params;
    }

    vị trí ~ /\.(?! nổi ​​tiếng).* {
        Phủ nhận tất cả;
    }

}

Cấu hình nginx của tôi về item.myserver.com trông giống như sau:

người phục vụ {
    nghe 80;
    server_name items.myserver.com;
    gốc /var/www/items_application/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    chỉ mục index.html index.htm index.php;

    bộ ký tự utf-8;

    địa điểm / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    vị trí = /favicon.ico { truy cập_đăng xuất; log_not_found tắt; }
    vị trí = /robots.txt { access_log off; log_not_found tắt; }

    error_page 404 /index.php;

    vị trí ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        bao gồm fastcgi_params;
    }

    vị trí ~ /\.(?! nổi ​​tiếng).* {
        Phủ nhận tất cả;
    }

}

Tất cả các tên miền phụ và tên miền được định tuyến trên DNS tới ip của máy chủ của tôi.

tôi có thể mở myserver.com và được định tuyến đến đúng trang.

NHƯNG khi mở immos.myserver.com, item.myserver.com Tôi được chuyển đến ứng dụng đang chạy trên myserver.com.

Cả ba ứng dụng đều là ứng dụng laravel.

Bất cứ đề nghị những gì tôi đang làm sai?

lá cờ in
Tên miền phụ của bạn chỉ được định cấu hình cho http. Bạn đang cố truy cập chúng qua https?
dave_thompson_085 avatar
lá cờ jp
Các tệp này chỉ có trong `sites-available` hay **bạn cũng đã liên kết chúng trong `sites-enabled` và thoát nginx?** Nếu không, nginx không thực sự đọc chúng. Xem https://serverfault.com/questions/424452/nginx-enable-site-command

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