如何在Debian Stream 8上部署Web应用
导读:在 Debian 12(常被误写为 Debian Stream 8)上部署 Web 应用的实操指南 一 准备与环境校验 更新系统并安装常用工具:sudo apt update && sudo apt install -y...
在 Debian 12(常被误写为 Debian Stream 8)上部署 Web 应用的实操指南
一 准备与环境校验
- 更新系统并安装常用工具:sudo apt update & & sudo apt install -y curl wget vim htop ufw
- 启动并自启防火墙:sudo ufw enable;按需放行端口(例如:sudo ufw allow 80,443,22/tcp)
- 若使用云服务器,还需在云平台安全组放行对应端口(如 80/443)
- 建议创建非 root 应用用户:sudo adduser --disabled-password --gecos “” appuser & & sudo usermod -aG sudo appuser
- 目录规范:静态站点推荐 /var/www/your-app;Java 应用推荐 /opt/your-app
二 静态站点 Nginx 部署
- 安装 Nginx:sudo apt install -y nginx & & sudo systemctl start nginx & & sudo systemctl enable nginx
- 部署文件:将本地打包产物(Vue/React 的 dist/build 目录内容)上传至 /var/www/your-app
- 示例:scp -r dist/* appuser@your_ip:/var/www/your-app
- 配置站点(/etc/nginx/sites-available/your-app):
- 示例:
- server { listen 80; server_name your_domain_or_ip; root /var/www/your-app; index index.html; location / { try_files $uri $uri/ =404; } }
- 示例:
- 启用站点并重载:sudo ln -s /etc/nginx/sites-available/your-app /etc/nginx/sites-enabled/ & & sudo nginx -t & & sudo systemctl reload nginx
- 访问验证:浏览器打开 http://your_domain_or_ip
三 Java JSP 或 WAR 应用 Tomcat 部署
- 安装 Java:sudo apt install -y openjdk-11-jdk & & java -version
- 安装 Tomcat 9:sudo apt install -y tomcat9 & & sudo systemctl start tomcat9 & & sudo systemctl enable tomcat9
- 部署 WAR:将应用打包为 your-app.war,复制到 /var/lib/tomcat9/webapps/(Tomcat 会自动解压部署)
- 访问验证:http://your_ip:8080/your-app(上下文路径通常与 WAR 文件名一致)
- 日志排查:tail -f /var/log/tomcat9/catalina.out
- 可选 HTTPS:在 /etc/tomcat9/server.xml 配置 8443 端口与证书,或前置 Nginx 终止 TLS
四 Python WSGI 应用 Apache Gunicorn 部署
- 安装依赖:sudo apt install -y apache2 python3-pip python3-venv
- 准备应用与虚拟环境:
- mkdir -p /opt/yourapp & & cd /opt/yourapp
- python3 -m venv venv & & source venv/bin/activate
- pip install -r requirements.txt gunicorn flask # 以 Flask 为例
- 测试 Gunicorn:gunicorn -b 127.0.0.1:8000 app:app
- 配置 Apache(启用 mod_wsgi):sudo a2enmod wsgi
- 虚拟主机(/etc/apache2/sites-available/yourapp.conf):
- 示例:
- <
VirtualHost *:80>
- ServerName your_domain_or_ip
- WSGIDaemonProcess yourapp python-home=/opt/yourapp/venv python-path=/opt/yourapp
- WSGIProcessGroup yourapp
- WSGIScriptAlias / /opt/yourapp/wsgi.py
- <
Directory /opt/yourapp>
- Require all granted
- ErrorLog ${ APACHE_LOG_DIR} /error.log
- CustomLog ${ APACHE_LOG_DIR} /access.log combined
- <
VirtualHost *:80>
- 示例:
- 启用站点并重启:sudo a2ensite yourapp.conf & & sudo systemctl reload apache2
- 访问验证:http://your_domain_or_ip
五 Docker 容器化 Nginx 反向代理部署
- 安装 Docker:
- sudo apt-get update & & sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
- curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- echo “deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable” | tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt-get update & & sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- 构建镜像(示例静态站点):
- Dockerfile:FROM nginx:latest COPY . /usr/share/nginx/html
- 构建运行:docker build -t mywebapp . & & docker run -d -p 8080:80 mywebapp
- Nginx 反向代理(/etc/nginx/sites-available/yourapp):
- 示例:
- server { listen 80; server_name your_domain; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
- 示例:
- 重载 Nginx:sudo nginx -t & & sudo systemctl reload nginx
- 访问验证:http://your_domain
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Debian Stream 8上部署Web应用
本文地址: https://pptw.com/jishu/769667.html
