搭建web 环境的那些事

文章目录:

一、Web 服务运行环境

1. Nginx / Apache 环境

1.1 端口规划

1.2 日志目录规范

1.3 反向代理配置(核心)

2 应用运行环境

2.1 Java 运行环境(OpenJDK / Maven)

2.2 Python 运行环境(venv / conda)

2.3 Node.js 运行环境(nvm)

3 适用场景总结

小结



一、Web 服务运行环境

Web 服务是 Linux 服务器中最常见的应用场景,通常用于承载:

  • 企业官网
  • 管理后台
  • API 接口服务

一个规范的 Web 运行环境,不仅要“能访问”,还需要在 端口规划、日志管理、反向代理 等方面具备可维护性。


1. Nginx / Apache 环境

在实际项目中,Nginx 使用更为广泛,Apache 多见于传统 PHP 项目或历史系统,下文以通用规范为主。


1.1 端口规划

合理的端口规划是服务器规范化的第一步,推荐如下:

服务类型端口说明
HTTP80Web 访问
HTTPS443加密访问
后端应用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
  • 自动化平台
  • 内部工具系统

推荐实践:

  • 使用 venvconda 隔离环境
  • 每个项目独立依赖

示例:

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 场景需求。

Read more

cann-recipes-train 仓库深度解读:昇腾平台下 DeepSeek-R1 与 Qwen2.5 强化学习训练优化实践

cann-recipes-train 仓库深度解读:昇腾平台下 DeepSeek-R1 与 Qwen2.5 强化学习训练优化实践

cann-recipes-train 仓库深度解读:昇腾平台下 DeepSeek-R1 与 Qwen2.5 强化学习训练优化实践 前言 自 DeepSeek-R1 发布以来,大模型的强化学习(RL)训练掀起了新一轮的技术热潮。各大厂商与开源社区纷纷投入实践,持续探索更高效的 RL 训练体系。本文将基于 cann-recipes-train 仓库,解读两个实践样例:DeepSeek-R1 的 RL 训练优化实践样例、基于 verl 框架的 Qwen2.5 强化学习实践样例 cann-recipes-train 仓库全景解析:昇腾训练优化的"实战底座" 大模型训练拼效率的阶段,CANN 直接帮我们搞定了底层异构硬件适配、资源调度这些麻烦事,不用再从零研究 GPU 和 NPU 怎么协同,现有模型代码也不用大改就能对接,训

服务端之NestJS接口响应message编写规范详解、写给前后端都舒服的接口、API提示信息标准化

服务端之NestJS接口响应message编写规范详解、写给前后端都舒服的接口、API提示信息标准化

MENU * 前言 * 定义 * 提示信息设计原则 * 提示信息风格分类 * 提示信息模板化设计 * 国际化与多语言支持 * 最佳实践 * 参考示例(NestJS响应) * 总结 * 统一风格示例清单推荐 * API响应message清单(可直接使用) 前言 在现代后端开发中,接口响应不仅仅是数据的传递,还承担着向前端或用户传递操作状态和结果的功能。一个规范、统一的message字段设计,可以显著提升系统的可维护性、前端开发效率和用户体验。 定义 响应结构示例(NestJS风格) 各字段作用 提示信息设计原则 简洁明了 1、不宜过长,一般3~12个汉字。 2、避免含糊不清的词,如“完成了”、“OK”等。 统一风格 1、同一项目接口建议使用统一动词+状态组合,例如:获取数据成功、数据加载完成。 上下文清晰 1、提示信息应体现操作对象或类型,如“用户列表获取成功”

ssm366基于Web的在线投稿系统的设计与实现+vue(文档+源码)_kaic

ssm366基于Web的在线投稿系统的设计与实现+vue(文档+源码)_kaic

摘  要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本在线投稿系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此在线投稿系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发.在线投稿系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:在线投稿系统;SSM框架;Mysql;自动化 Abstract The fast-paced development of the modern economy and the continuous improvement and upgrading of in

一文了解Blob文件格式,前端必备技能之一

一文了解Blob文件格式,前端必备技能之一

文章目录 * 前言 * 一、什么是Blob? * 二、Blob的基本特性 * 三、Blob的构造函数 * 四、常见使用场景 * 1. 文件下载 * 2. 图片预览 * 3. 大文件分片上传 * 四、Blob与其他API的关系 * 1. File API * 2. FileReader * 3. URL.createObjectURL() * 4. Response * 五、性能与内存管理 * 六、实际案例:导出Word文档 * 七、浏览器兼容性 * 八、总结 前言 最近在项目中需要导出文档时,我首次接触到了 Blob 文件格式。作为一个前端开发者,虽然经常听到 "Blob" 这个术语,但对其具体原理和应用场景并不十分了解。经过一番研究和实践,