Nginx 是一个高性能的 HTTP 和反向代理服务器,也用作邮件代理服务器。通过配置 Nginx,可以实现多域名和多应用的部署和管理。
假设我们有两个域名 example1.com
和 example2.com
,分别对应两个不同的应用 app1
和 app2
。
nginx.conf
http {
server {
listen 80;
server_name example1.com;
location / {
proxy_pass http://localhost:3000; # app1 的地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name example2.com;
location / {
proxy_pass http://localhost:4000; # app2 的地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
原因:可能是 DNS 解析配置错误,或者 Nginx 配置中的 server_name
不正确。
解决方法:
server_name
与域名一致。原因:可能是后端应用未启动,或者 Nginx 配置中的 proxy_pass
地址不正确。
解决方法:
proxy_pass
地址是否正确。原因:如果使用 HTTPS,可能是 SSL 证书配置不正确。
解决方法:
server {
listen 443 ssl;
server_name example1.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
通过以上配置和解决方法,可以有效地实现 Nginx 多域名多应用的部署和管理。
领取专属 10元无门槛券
手把手带您无忧上云