在AWS上实现多个站点、一个实例、多个端口的解决方案可以使用Nginx作为反向代理。以下是一个示例配置:
首先,在AWS EC2实例上安装Nginx,并确保Nginx服务正在运行。
在Nginx配置文件中,通常是/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
,添加以下配置:
http {
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 8080;
server_name example.com;
location / {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
上述配置中,我们定义了两个虚拟主机(server),分别监听80端口和8080端口。proxy_pass
指令将请求转发到实际运行站点的端口(8000和8081)。proxy_set_header
指令用于设置请求头,保持原始请求的主机和IP地址。
完成配置后,重启Nginx服务以使更改生效:
sudo service nginx restart
现在,您可以通过访问http://example.com
来访问第一个站点,通过访问http://example.com:8080
来访问第二个站点。
请注意,您需要根据您的实际情况修改示例中的域名和端口号。此外,还可以根据需要添加更多的虚拟主机和端口配置。