Tôi có một cấu hình hoạt động trong nginx chỉ cho một trong các trang web của mình, nhưng tôi đã làm hỏng nó khi cố gắng làm cho nó hoạt động với 2 miền khác nhau, một trong số đó có 2 miền phụ, tất cả đều phục vụ các trang web hoặc ứng dụng khác nhau. Để làm cho vấn đề trở nên khó khăn hơn đối với tôi, miền đang chạy 2 ứng dụng nằm trên một máy riêng biệt và tôi đang cố gắng ủy quyền các yêu cầu cho miền đó đến đúng máy trong mạng LAN của mình. Xem bên dưới:
Cấu hình NGINX của tôi là một thảm họa, nhưng như sau:
người phục vụ {
nghe 80 default_server;
lắng nghe [::]:80 default_server;
gốc /home/pi/sites/main;
# Thêm index.php vào danh sách nếu bạn đang sử dụng PHP
chỉ mục index.html index.htm index.nginx-debian.html domain1_index.html;
tên máy chủ _;
địa điểm / {
# Lần đầu tiên cố gắng phục vụ yêu cầu dưới dạng tệp, sau đó
# làm thư mục, sau đó quay lại hiển thị lỗi 404.
try_files $uri $uri/ =404;
}
}
người phục vụ {
gốc /home/pi/sites/main;
chỉ mục index.html index.htm index.nginx-debian.html;
server_name internal.domain1.info; # được quản lý bởi Certbot
địa điểm / {
# Lần đầu tiên cố gắng phục vụ yêu cầu dưới dạng tệp, sau đó
# làm thư mục, sau đó quay lại hiển thị lỗi 404.
try_files $uri $uri/ =404;
}
lắng nghe [::]:443 ssl ipv6only=on; # được quản lý bởi Certbot
nghe 443 ssl; # được quản lý bởi Certbot
ssl_certificate /etc/letsencrypt/live/internal.domain1.info/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/internal.domain1.info/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ụ {
if ($host = internal.domain1.info) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
nghe 80 ;
nghe [::]:80 ;
server_name internal.domain1.info;
trả lại 404; # được quản lý bởi Certbot
}
người phục vụ {
server_name shiba.com www.shiba.com thì thầm.shiba.com;
địa điểm / {
proxy_pass http://<machine2'sIP>:8888;
}
}
người phục vụ {
server_name yelling.shiba.com;
địa điểm / {
proxy_pass http://<machine2'sIP>:8555;
}
}
Làm cách nào tôi có thể làm điều này để phục vụ các trang web như được chỉ định trong ảnh của tôi?
Cảm ơn.
Chỉnh sửa: Cấu hình mới được đề xuất của tôi
|trang web có sẵn | liên kết tượng trưng --> | kích hoạt trang web
conf1 | | conf1
trang web #https
người phục vụ {
gốc /home/pi/sites/main;
chỉ mục index.html index.htm index.nginx-debian.html;
địa điểm / {
# Lần đầu tiên cố gắng phục vụ yêu cầu dưới dạng tệp, sau đó
# làm thư mục, sau đó quay lại hiển thị lỗi 404.
try_files $uri $uri/ =404;
}
lắng nghe [::]:443 ssl ipv6only=on; # được quản lý bởi Certbot
nghe 443 ssl; # được quản lý bởi Certbot
ssl_certificate /etc/letsencrypt/live/internal.domain1.info/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/internal.domain1.info/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
}
chuyển hướng trang web #http
người phục vụ {
if ($host = internal.domain1.info) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
nghe 80 ;
nghe [::]:80 ;
server_name internal.domain1.info;
trả lại 404; # được quản lý bởi Certbot
}
|trang web có sẵn | liên kết tượng trưng --> | kích hoạt trang web
conf2 | | conf2
người phục vụ {
nghe 80 ;
nghe [::]:80 ;
server_name thì thầm.shiba.info;
trả lại 301 http://xxx.xxx.x.xx:8555;
}
|trang web có sẵn | liên kết tượng trưng --> | kích hoạt trang web
conf3 | | conf3
người phục vụ {
nghe 80 ;
nghe [::]:80 ;
server_name yelling.shiba.info;
trả về 301 http://xxx.xxx.x.xx:8888;
}