如何在没有域名的情况下将django webapp部署到apache2服务器上

2 投票
1 回答
792 浏览
提问于 2025-04-18 08:33

这是我的 .conf 文件

<VirtualHost *:80>
WSGIScriptAlias / /home/ubuntu/firstweb.wsgi

ServerName ec2-66-***-52-61.compute-1.amazonaws.com
Alias /static /var/www/firstweb/static/

<Directory /var/www/firstweb/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

通常在网上的教程里,他们会让我把 ServerName 设置为我购买的域名,但我想让我的 Django 应用在服务器的本地环境上运行。比如说,当我在浏览器里输入服务器的 IP 地址或者我上面提到的 EC2 地址时,我希望我的 Django 应用能显示出来。

但现在我的配置有问题,我遇到了 403 错误,提示我没有权限访问 /

通常我用默认的 Python 服务器部署 Django 时,只需要这样做,

> python manage.py runserver ec2-66-***-52-61.compute-1.amazonaws.com:80

然后当我在浏览器里打开 ec2-66-*-52-61.compute-1.amazonaws.com 时,我的应用就能显示出来。基本上,我想用 apache2 来实现同样的效果。

我还没有域名,我只想在我的电脑上输入公共 IP 或者 EC2 地址,我的 Django 应用就能显示出来。我该怎么办?

1 个回答

0

我之前也遇到过这种情况,我通常会给网站起个“假”的名字,然后把这个名字放到我正在浏览的机器的hosts文件里。

.conf(在服务器上)

<VirtualHost *:80>
    ServerName mysite.dev
    .
    .
    .
</VirtualHost>

hosts(在你浏览网站的机器上)

mysite.dev    <IP address of the server>

这个hosts条目在Windows机器上可以用,但在Linux或Mac上你需要调换顺序:

<IP address of server>    mysite.dev

在Windows机器上,你可以在 %SYSTEM32%\etc\drivers\hosts 找到hosts文件(这个文件在Windows、Linux或Mac上都没有扩展名)

在Linux或Mac上,它的位置是 /etc/hosts,你需要有管理员权限或者使用sudo才能编辑它。

撰写回答