同一EC2 Ubuntu实例下WordPress与React项目绑定不同域名配置求助
同一EC2 Ubuntu实例上,Apache WordPress与React站点绑定不同域名的配置方案
没问题,我来一步步帮你搞定这个配置!咱们分几个阶段操作,确保两个站点能正常访问且互不干扰。
第一步:给React站点配置Route53域名解析
首先你得在Route53里给React站点加一条A记录(用IPv6的话就加AAAA记录),指向当前EC2实例的公网IP——操作流程和你之前配置WordPress域名时完全一致,确保新域名能正确解析到你的EC2机器就行。
第二步:准备React站点(生产环境更推荐这么做)
如果是正式部署,别直接用React自带的开发服务器(就是npm start监听3000的那个),它性能差还不稳定。建议先构建生产版本:
- 进到React项目目录,执行
npm run build,这会生成一个build文件夹,里面全是优化后的静态资源。 - 你可以把这个
build文件夹放到Apache的目录下,比如/var/www/react-site,后续直接让Apache托管这些静态文件;要是你坚持想用Node服务器托管,反向代理的思路也适用。
如果只是先测试,想继续用开发服务器,那得让它在后台稳定运行,不然终端一关进程就没了。推荐用pm2来管理:
- 先安装pm2:
sudo npm install -g pm2 - 进到React项目目录,启动服务:
pm2 start npm --name "react-site" -- start - 验证状态:执行
pm2 status能看到这个进程在运行,且通过http://你的EC2公网IP:3000能正常访问React站点。
第三步:配置Apache虚拟主机+反向代理
Apache需要启用反向代理相关模块,然后给React站点单独创建虚拟主机配置:
1. 开启必要的Apache模块
先执行这几条命令,打开反向代理相关模块:
sudo a2enmod proxy proxy_http proxy_html rewrite sudo systemctl restart apache2
2. 创建React站点的虚拟主机配置文件
前往/etc/apache2/sites-available/目录,新建一个配置文件,比如命名为react-site.conf,内容如下(记得替换成你的实际域名):
<VirtualHost *:80> ServerName your-react-domain.com # 替换成你的React站点域名 ServerAlias www.your-react-domain.com # 可选,有www前缀域名的话就加上 # 反向代理到Node的3000端口(测试场景用) ProxyPreserveHost On ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ # 托管静态build文件夹(生产环境推荐) # DocumentRoot /var/www/react-site/build # <Directory /var/www/react-site/build> # Options Indexes FollowSymLinks MultiViews # AllowOverride All # Require all granted # </Directory> ErrorLog ${APACHE_LOG_DIR}/react-site-error.log CustomLog ${APACHE_LOG_DIR}/react-site-access.log combined </VirtualHost>
3. 启用配置并重启Apache
- 启用新配置:
sudo a2ensite react-site.conf - 检查配置语法:
sudo apache2ctl configtest,提示Syntax OK就没问题 - 重启Apache生效:
sudo systemctl restart apache2
第四步:测试访问
现在直接输入React的域名就能访问站点了,原来的WordPress域名依然正常指向80端口的WordPress站点,两者完全独立、互不影响。
额外小提示(可选:给React站点加HTTPS)
要是你想给React站点配置HTTPS,用Certbot申请免费SSL证书就行,操作和给WordPress配HTTPS差不多:
- 安装Certbot:
sudo apt install certbot python3-certbot-apache - 申请证书:
sudo certbot --apache -d your-react-domain.com -d www.your-react-domain.com - 跟着提示操作即可,Certbot会自动修改虚拟主机配置,把HTTP请求重定向到HTTPS。
内容的提问来源于stack exchange,提问作者Nikola Milosevic
相关产品推荐
相关产品推荐

