Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,允许开发者使用 JavaScript 编写服务器端的应用程序。多域名指的是在一个 Node.js 应用中同时处理来自不同域名的请求。
Host
字段来区分不同的域名。解决方法:
const http = require('http');
const server = http.createServer((req, res) => {
if (req.headers.host === 'example1.com') {
// 处理 example1.com 的请求
res.end('Hello from example1.com');
} else if (req.headers.host === 'example2.com') {
// 处理 example2.com 的请求
res.end('Hello from example2.com');
} else {
res.statusCode = 404;
res.end('Not Found');
}
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
解决方法:
假设你有两个 Node.js 应用分别运行在不同的端口上:
app1
运行在 3001
端口app2
运行在 3002
端口你可以使用 Nginx 作为反向代理:
server {
listen 80;
server_name example1.com;
location / {
proxy_pass http://localhost:3001;
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:3002;
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;
}
}
通过以上方法,你可以有效地处理 Node.js 中的多域名请求,并根据不同的需求进行相应的配置和优化。
领取专属 10元无门槛券
手把手带您无忧上云