搭建web 环境的那些事
文章目录:
2.1 Java 运行环境(OpenJDK / Maven)
一、Web 服务运行环境
Web 服务是 Linux 服务器中最常见的应用场景,通常用于承载:
- 企业官网
- 管理后台
- API 接口服务
一个规范的 Web 运行环境,不仅要“能访问”,还需要在 端口规划、日志管理、反向代理 等方面具备可维护性。
1. Nginx / Apache 环境
在实际项目中,Nginx 使用更为广泛,Apache 多见于传统 PHP 项目或历史系统,下文以通用规范为主。
1.1 端口规划
合理的端口规划是服务器规范化的第一步,推荐如下:
| 服务类型 | 端口 | 说明 |
|---|---|---|
| HTTP | 80 | Web 访问 |
| HTTPS | 443 | 加密访问 |
| 后端应用 | 8000–9000 | 内部服务端口 |
| 管理后台 | 8080 / 8443 | 仅内网访问 |
规划原则:
- 对外只暴露 80 / 443
- 后端应用端口不直接暴露公网
- 管理端口限制来源 IP
通过反向代理统一入口,提升安全性和可维护性。
1.2 日志目录规范
日志混乱是很多 Web 服务器的通病,建议统一规范:
/var/log/nginx ├── access.log ├── error.log ├── site-a.access.log └── site-a.error.log 推荐做法:
- 每个站点独立 access / error 日志
- 日志与代码目录分离
- 配合 logrotate 进行日志轮转
示例(Nginx):
access_log /var/log/nginx/site-a.access.log; error_log /var/log/nginx/site-a.error.log; 1.3 反向代理配置(核心)
Nginx 常用于作为 统一入口 + 反向代理层,后端服务只监听本地端口。
示例配置:
server { listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 这种架构的优势:
- 隐藏后端真实端口
- 统一 SSL / 域名管理
- 便于后续扩展负载均衡
2 应用运行环境
Web 服务器通常只负责转发请求,真正的业务逻辑运行在应用环境中。不同项目对运行环境的要求不同。
2.1 Java 运行环境(OpenJDK / Maven)
常见场景:
- Spring Boot
- 企业管理系统
- API 服务
推荐配置:
- OpenJDK 8 / 11 / 17(按项目需求)
- Maven 用于构建
基本验证:
java -version mvn -version 运行方式:
- 后端服务监听本地端口(如 8080)
- 通过 Nginx 反向代理对外提供访问
2.2 Python 运行环境(venv / conda)
常见场景:
- Flask / Django
- 自动化平台
- 内部工具系统
推荐实践:
- 使用
venv或conda隔离环境 - 每个项目独立依赖
示例:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt 优点:
- 避免依赖冲突
- 便于迁移和复现
2.3 Node.js 运行环境(nvm)
常见场景:
- 前端构建
- Node.js API
- 管理后台
推荐使用 nvm 管理版本:
nvm install 18 nvm use 18 优势:
- 多版本共存
- 项目之间互不影响
3 适用场景总结
| 场景 | 推荐架构 |
|---|---|
| 企业官网 | Nginx + 静态资源 |
| 管理后台 | Nginx + Java / Node |
| API 服务 | Nginx + Java / Python |
统一原则:
- Web 层只负责转发
- 应用层只监听内网
- 日志、端口、目录统一规划
小结
Web 服务运行环境的搭建,不只是安装 Nginx 或启动应用,更重要的是:
- 端口是否规范
- 日志是否可维护
- 架构是否易扩展
通过 Nginx + 应用运行环境 的方式,可以满足绝大多数企业 Web 场景需求。