Apache2服务器域名配置求助:Django站点域名绑定失败解决方案
简单可行的Apache2绑定GoDaddy域名配置步骤
Hey,我来帮你搞定这个域名绑定的问题,步骤很简单,咱们一步步来:
第一步:先搞定GoDaddy的DNS解析
登录GoDaddy的域名管理后台,找到你的www.mydomain.com域名:- 进入DNS设置页面,添加/修改A记录:主机填
www,值填你的服务器公网IP,TTL选默认或短一点(比如5分钟,让解析生效更快) - 如果想支持不带www的
mydomain.com访问,再添加一条A记录:主机填@,值同样是服务器IP;或者把www的CNAME记录指向@ - 等10-30分钟让DNS生效,你可以在本地终端用
nslookup www.mydomain.com测试,确认能解析到你的服务器IP
- 进入DNS设置页面,添加/修改A记录:主机填
第二步:创建单独的Apache虚拟主机配置文件
为了不影响第一个站点,咱们给第二个站点单独建配置文件:- 先备份默认配置以防万一:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.bak - 新建域名配置文件:
sudo nano /etc/apache2/sites-available/mydomain.conf - 把下面的配置粘进去,记得替换成你自己的项目路径和信息:
return (<VirtualHost *:80> ServerName www.mydomain.com ServerAlias mydomain.com # 可选,支持不带www的访问 # Django项目WSGI核心配置 WSGIScriptAlias / /path/to/your/second-django-project/wsgi.py WSGIDaemonProcess mydomain.com python-path=/path/to/your/second-django-project python-home=/path/to/your/virtualenv WSGIProcessGroup mydomain.com # 静态文件映射(要先执行过Django的collectstatic命令) Alias /static/ /path/to/your/second-django-project/static/ <Directory /path/to/your/second-django-project/static/> )Require all granted </Directory> # 媒体文件映射(如果项目有上传功能的话) Alias /media/ /path/to/your/second-django-project/media/ <Directory /path/to/your/second-django-project/media/> Require all granted </Directory> # WSGI文件目录权限配置 <Directory /path/to/your/second-django-project/> <Files wsgi.py> Require all granted </Files> </Directory> ErrorLog ${APACHE_LOG_DIR}/mydomain-error.log CustomLog ${APACHE_LOG_DIR}/mydomain-access.log combined - 替换说明:把
/path/to/your/second-django-project换成第二个Django项目的实际路径;如果没用虚拟环境,删掉WSGIDaemonProcess里的python-home=/path/to/your/virtualenv部分
- 先备份默认配置以防万一:
第三步:更新Django的ALLOWED_HOSTS
打开第二个Django项目的settings.py,找到ALLOWED_HOSTS,修改成:ALLOWED_HOSTS = ['www.mydomain.com', 'mydomain.com', '原来的访问链接']这样既保留原访问方式,又支持新域名
第四步:启用新站点并生效配置
- 启用新的虚拟主机:
sudo a2ensite mydomain.conf - 检查配置语法是否正确:
sudo apache2ctl configtest,出现Syntax OK就没问题 - 重启Apache服务:
sudo systemctl restart apache2
- 启用新的虚拟主机:
第五步:测试访问
现在打开浏览器访问www.mydomain.com,应该就能正常打开你的第二个Django站点了。如果还是不行,先确认DNS是否生效,再查看Apache错误日志/var/log/apache2/mydomain-error.log排查问题
内容的提问来源于stack exchange,提问作者jax
相关产品推荐
相关产品推荐

