如何在 Ubuntu Server 中为 Windows 10 子系统应用启用公共 URL 访问权限?
2024-03-03 16:41:21
在 Ubuntu Server 中为 Windows 10 子系统应用启用公共 URL 访问权限
概述
在 Windows 10 子系统中配置 Ubuntu Server 时,访问安装在其中的应用可能是一个挑战。本指南将详细阐述如何在 Ubuntu Server 上启用公共 URL 访问权限,以便你可以使用 Nginx、Python Django 和 VueJS 应用从远程位置访问你的应用。
先决条件
- Windows 10 系统
- 安装了 Ubuntu 22.04.6 子系统
- 已安装 Python、Django、VueJS、Postgres 和 Nodejs
- Nginx Web 服务器
步骤
1. 启用防火墙
启用 Ubuntu 服务器的防火墙以允许必要端口的流量。
sudo ufw enable
2. 允许端口
允许 HTTP 和 HTTPS 流量通过防火墙。
sudo ufw allow 80
sudo ufw allow 443
3. 编辑 Nginx 配置文件
编辑 Nginx 配置文件 /etc/nginx/sites-available/default
,并添加以下内容:
server {
listen 80;
server_name 你的公共IP地址;
location = /static/favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/你的用户名/你的应用路径;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
4. 重启 Nginx
重启 Nginx 以应用更改。
sudo systemctl restart nginx
5. 确认配置
使用以下命令验证 Nginx 配置。
sudo nginx -t
6. 创建 gunicorn 服务和套接字文件
创建 gunicorn 服务和套接字文件,以将 Django 应用与 Nginx 连接起来。
gunicorn.socket
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=你的用户名
Group=www-data
WorkingDirectory=/home/你的用户名/你的应用路径
ExecStart=/home/你的用户名/你的应用路径/env/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/run/gunicorn.sock \
你的应用名.wsgi:application
[Install]
WantedBy=multi-user.target
7. 启动 gunicorn 服务
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
预期结果
按照这些步骤操作后,你可以从公共 IP 地址访问你的应用。这意味着外部用户可以远程访问你的应用,即使它托管在你的 Windows 10 电脑上。
故障排除
- 检查你的公共 IP 地址是否正确
- 确保防火墙已允许必要的端口
- 确认 Nginx 配置文件已正确配置
- 检查错误日志以识别任何潜在问题
常见问题解答
问:为什么我无法从公共 IP 地址访问我的应用?
答:检查防火墙配置、Nginx 配置和 gunicorn 服务状态。
问:如何保护我的应用免受外部攻击?
答:使用 SSL 证书并实施安全措施,例如防跨站脚本 (XSS) 保护和输入验证。
问:我如何优化我的应用的性能?
答:优化数据库查询、使用缓存机制并考虑使用负载均衡。
问:我可以使用其他 Web 服务器吗?
答:是的,你可以使用 Apache 或 Caddy 等其他 Web 服务器。
问:我可以使用不同的编程语言吗?
答:是的,你可以使用 Python、Nodejs、Ruby 或其他编程语言来开发你的应用。