[英](NGINX) NodeJS Reverse Proxy Subdomain
這個問題可能被問了很多,但我似乎找不到一個真正有效的真正簡單的解決方案。 我需要幫助來設置它。
我將列出我當前的環境,以便您快速了解:
我只運行一個站點,當然,不同的內容有不同的頁面(不是多個站點)
我的目標是擁有類似於 CPanel-subdomains 的東西。 我可以在哪里添加admin.domain.example並將其設置為例如domain.example/admin而無需重定向。
但是我發現這比預期的要難,因為我現在閱讀了這么多論壇帖子和這么多文檔,但我無法讓它發揮作用。
我已經足夠了解子域必須在 Nginx 中配置。 在此之前,我一直嘗試在 nodejs 配置中執行此操作。
我當前的nginx.conf使我的域example.domain使用 SSL 直接進入我網站的根文件夾。 這工作正常。
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
server {
server_name example.domain www.example.domain;
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.domain/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
}
在這里,我假設我必須添加一個服務器塊才能使admin.example.domain路由到example.domain/admin
我怎樣才能做到這一點並仍然保持 SSL? 我需要 SSL 才能使圖像呈現。 我曾嘗試添加這樣的服務器塊:
server {
server_name admin.example.domain
location / {
proxy_pass http://127.0.0.1:3000/admin;
}
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.domain/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
如果這行得通(除非我監聽端口 80 並使用 http://) ,否則它只會將我重定向到(不安全) https://admin.example.domain/admin
和我剛才做的一樣的每個人都會讓它工作。 但我沒有。 有什么不同,我該如何解決這個問題?
解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.