文章目录:
[一、Web 服务运行环境](#一、Web 服务运行环境)
[1. Nginx / Apache 环境](#1. Nginx / Apache 环境)
[1.1 端口规划](#1.1 端口规划)
[1.2 日志目录规范](#1.2 日志目录规范)
[1.3 反向代理配置(核心)](#1.3 反向代理配置(核心))
[2 应用运行环境](#2 应用运行环境)
[2.1 Java 运行环境(OpenJDK / Maven)](#2.1 Java 运行环境(OpenJDK / Maven))
[2.2 Python 运行环境(venv / conda)](#2.2 Python 运行环境(venv / conda))
[2.3 Node.js 运行环境(nvm)](#2.3 Node.js 运行环境(nvm))
[3 适用场景总结](#3 适用场景总结)
一、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 场景需求。