搭建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

Local Moondream2实战案例:独立开发者用其构建AI绘画灵感助手App

Local Moondream2实战案例:独立开发者用其构建AI绘画灵感助手App 你有没有遇到过这样的创作瓶颈?脑子里有个模糊的画面,却怎么也找不到合适的词语来描述它,AI绘画工具生成的图片总是差那么点意思。或者,在网上看到一张惊艳的图片,想学习它的构图和风格,却不知从何分析起。 对于独立开发者或小型创意团队来说,聘请专业的设计师或购买昂贵的创意工具往往成本高昂。今天,我要分享一个实战案例:如何利用一个名为 Local Moondream2 的超轻量级工具,快速构建一个完全运行在你个人电脑上的“AI绘画灵感助手”,彻底解决上述痛点。 1. 为什么选择Local Moondream2? 在开始动手之前,我们先搞清楚这个工具到底能做什么,以及它为何适合独立开发者。 简单来说,Local Moondream2 是一个给你的电脑装上“眼睛”的本地化应用。你上传任何图片,它都能“看懂”,并用英文告诉你图片里有什么。它的核心能力有三项,每一项都对创意工作者极具价值: * 详细描述图片:它能生成一段极其详尽的英文描述,远超简单的“一只猫在沙发上”。这段描述可以直接用作AI绘画(如S

芯片制造行业如何通过WebUploader+PHP加密传输工程文件的分片数据?

《一个码农的奇幻外包漂流记》 需求分析会:当甲方爸爸说出"简单"二字时… 各位老铁们好!我是辽宁沈阳一名"资深"前端码农(资深=头发少)。刚接到个外包需求,看完后我直接表演了个东北式懵逼: 甲方需求翻译大赛: * “要支持20G文件” → “希望你电脑硬盘够大” * “兼容IE9” → “希望你心态够好” * “1000+文件的文件夹结构” → “希望你记忆力超群” * “预算100元含3年维护” → “希望你家里有矿” * “7×24小时支持” → “希望你不需要睡觉” 技术选型:穷且益坚版解决方案 前端部分(Vue3+原生JS缝合怪版) // 文件夹上传器(贫困版)classDiaoSiFolderUploader{constructor(){this.chunkSize =5*1024*1024;// 5MB一片this.maxTry =99;// 最大重试次数(因为甲方网络是2G)this.

(附源码)基于Java web的在线考试系统的设计与实现-计算机毕设 33482

(附源码)基于Java web的在线考试系统的设计与实现-计算机毕设 33482

基于Java web的在线考试系统的设计与实现 摘  要 随着信息技术的迅速发展,教育行业对在线考试系统的需求不断增加,尤其是在数字化转型的背景下,传统的人工考试管理方式逐渐暴露出诸多问题,如效率低、资源浪费、信息滞后等。为了提升考试管理的效率和学生的学习体验,在线考试系统的开发显得尤为重要。 该系统的功能设计主要包括:学生在线报名、考试、成绩查询、错题管理等功能;教师可以发布、编辑试卷、批改作业、查看成绩分析等;管理员负责系统用户管理、考试资源调度、公告发布等。系统通过清晰的角色分配,确保各类用户能够高效使用系统,实现学习、教学和管理的数字化与智能化。 技术方案上,系统前端采用Vue.js框架构建,实现与用户的良好交互;后端使用SpringBoot框架,结合Java语言进行业务逻辑处理,确保系统的高性能和可扩展性;MySQL数据库用于存储用户数据、考试成绩、题库信息等,保障数据的高效管理和查询性能。 通过在线考试系统的实施能够大幅提升考试管理效率,减少人工干预,优化资源分配,增强学生的参与感和互动体验。该系统不仅能帮助教育机构实现信息化管理,还能为学生和教师提供便捷

微信小程序webview postmessage通信指南

微信小程序webview postmessage通信指南

需求概述 在微信小程序中使用 web-view 组件与内嵌网页进行双向通信,主要通过 postMessage 实现。以下是完整的配置和使用方法: 通信指南 微信小程序webview官方文档 1. 基础配置 小程序端配置 // app.json 或 page.json { "usingComponents": {}, "permission": { "scope.webView": { "desc": "用于网页和小程序通信" } } } 网页端配置 <!-- 内嵌网页需引入微信JS-SDK --> <script src="https://res.wx.qq.com/open/