news 2026/5/20 22:26:11

Web网站服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Web网站服务

1. 基础概念部分

1.1 Web 服务主流软件及开发语言

  • Apache、Nginx、Tomcat 三大 Web 服务
  • Apache:C/C++ 开发
  • Nginx:C/C++ 开发
  • Tomcat:Java 语言(主打 Java 项目)

1.2 源码编译安装三部曲

  • ./configure 预编译检测系统开发环境、编译依赖、系统库、版本兼容;可指定安装路径、开启模块功能;最终生成 Makefile。
  • make 编译编译器将源代码文本翻译成机器二进制码,转为 CPU 可识别 0/1 指令,耗时最长。
  • make install 安装把编译好的二进制程序、配置、模块、帮助文件等,拷贝到--prefix指定安装目录及子目录。

1.3 Apache 源码安装位置判断

安装目录:/usr/local/httpd2467

目录结构:

  • bin:启动程序
  • conf:配置文件
  • htdocs:默认网站根目录
  • logs:日志目录
  • modules:模块目录
  • cgi-bin:脚本目录
  • docs:虚拟主机网站站点目录

2. Apache 访问控制配置

2.1 配置文件标准操作流程

1.备份主配置文件

cp -av ../../conf/httpd.conf /opt/备份文件名

2.精简配置(去掉空行、注释)

grep -Ev "^$|#" 配置文件 > 精简后文件

3.覆盖回主配置

cat 精简文件 > 原httpd.conf

4.手动加注释、保留核心配置具体需要修改的配置信息如下

[root@localhost conf]# vim httpd.conf <Directory "/usr/local/httpd2467/htdocs"> Options Indexes FollowSymLinks AllowOverride None # by gaoxf 20260518 14:21 v1.1.1 begin # Require all granted Require ip 12.13.14.4 # by gaoxf 20260518 14:22 v1.1.1 end </Directory>

2.2 单一IP访问控制

配置位置:<Directory 网站目录>容器内

  • 允许单个 IP
Require ip 12.13.14.4

  • 禁止某个 IP
Require not ip 12.13.14.5

2.3 访问规则逻辑

  • 多个无not或关系,满足任一即可访问
  • not也有普通 Require:且关系,全部满足才可访问

2.4 配置检查与重启

  • 语法检测:
/usr/local/httpd2467/bin/apachectl -t

  • 重启服务:
/usr/local/httpd2467/bin/apachectl -k restart

2.5 403报错原因

  • 目录权限 / 访问规则拒绝
  • 网站目录无默认首页 index.html

3. Apache 基于域名虚拟主机配置(核心重点)

3.1 前期准备

1.服务器 IP:12.13.14.4/24

2.本地域名解析 /etc/hosts格式:IP 域名,可多个域名绑定同一 IP

# 例如 12.13.14.4 web1.gaoxf.com 12.13.14.4 web2.gaoxf.com

3.Windows 端修改 hosts:路径:C:\Windows\System32\drivers\etc\hosts,写入相同解析

4.ping 测试:能解析到对应 IP、有 TTL 返回即为正常

3.2 虚拟主机配置文件

路径如下

/usr/local/httpd2467/conf/extra/httpd-vhosts.conf

虚拟主机配置结构模板

<VirtualHost *:80> ServerAdmin 管理员邮箱 DocumentRoot 网站站点目录 ServerName 域名 ErrorLog 错误日志路径 CustomLog 访问日志路径 <Directory 站点目录> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>

具体修改配置信息如下

[root@localhost extra]# cat httpd-vhosts.conf <VirtualHost *:80> ServerAdmin webmaster@web1.gaoxf.com DocumentRoot "/usr/local/httpd2467/docs/web1.gaoxf.com" ServerName web1.gaoxf.com # ServerAlias www.web1.gaoxf.com ErrorLog "logs/web1.gaoxf.com-error_log" CustomLog "logs/web1.gaoxf.com-access_log" common <Directory "/usr/local/httpd2467/docs/web1.gaoxf.com"> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@web2.gaoxf.com DocumentRoot "/usr/local/httpd2467/docs/web2.gaoxf.com" ServerName web2.gaoxf.com ErrorLog "logs/web2.gaoxf.com-error_log" CustomLog "logs/web2.gaoxf.com-access_log" common <Directory "/usr/local/httpd2467/docs/web2.gaoxf.com"> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>

3.3 建站目录与权限

1.批量创建站点目录

mkdir -pv /usr/local/httpd2467/docs/web{1..2}.gaoxf.com

2.授权运行用户 daemon

chown -R daemon.daemon 站点目录

3.编写各自默认首页 index.html

echo '<h1>web1.gaoxf.com</h1>' > /usr/local/httpd2467/docs/web1.gaoxf.com/index.html echo '<h1>web2.gaoxf.com</h1>' > /usr/local/httpd2467/docs/web2.gaoxf.com/index.html

3.4 主配置引入虚拟主机

1.在httpd.conf主配置文件中加入:

include /usr/local/httpd2467/conf/extra/httpd-vhosts.conf

2.并将之前修改的允许单个IP访问设置回允许所有IP访问

3.5 测试与日志

1.浏览器分别访问两个域名,展示各自首页

2.独立日志存放各自访问 / 错误日志

web1.gaoxf.com访问日志信息

tail -f /usr/local/httpd2467/logs/web1.gaoxf.com-access_log

web2.gaoxf.com访问日志信息

tail -f /usr/local/httpd2467/logs/web2.gaoxf.com-access_log

3.可扩展配置:80 强制跳转 443 HTTPS、SSL 证书配置

4.如何判断Apache源码安装位置?

1.用which/whereis找启动命令路径

Apache的主程序叫httpd,直接找它的位置:

which httpd # 输出示例:/usr/local/httpd2467/bin/httpd whereis httpd # 输出示例:httpd: /usr/local/httpd2467/bin/httpd /usr/local/httpd2467/conf/httpd.conf

httpd 所在的上级目录(bin 的父目录),就是 Apache 的安装根目录。

2.看进程启动参数

ps aux | grep httpd # 输出里会有类似 root 1234 0.0 0.1 23456 7890 ? Ss 10:00 0:00 /usr/local/httpd2467/bin/httpd -k start

这里的 /usr/local/httpd2467/bin/httpd,也能直接看出安装根目录。

3.找主配置文件 httpd.conf

Apache 的核心配置文件 httpd.conf 里,能看到所有路径信息:

# 查找配置文件位置 find / -name httpd.conf 2>/dev/null

# 常见路径 /usr/local/httpd2467/conf/httpd.conf /usr/local/apache2/conf/httpd.conf

打开文件,里面的 ServerRoot 就是安装根目录:

cat /usr/local/httpd2467/conf/httpd.conf | grep ServerRoot ServerRoot "/usr/local/httpd2467"

这是 Apache 最核心的路径配置

4.用 apachectl 工具查看(最稳妥)

# 找到apachectl的位置 which apachectl # 输出:/usr/local/httpd2467/bin/apachectl # 查看编译参数(包含prefix)

/usr/local/httpd2467/bin/apachectl -V

输出里的Server built with: ... --prefix=/usr/local/httpd2467会直接告诉你安装路径。

5.如何解决上处favicon.ico 404的问题

1. 制作 favicon.ico 图标

你可以用在线工具快速生成:

1.打开任意在线图标制作网站(比如:favicon.io或 比特虫图标制作工具)

在线制作ico图标 | 在线ico图标转换工具 方便制作favicon.ico - 比特虫 - Bitbug.net

2.传你准备好的图片(推荐正方形,比如 256x256px)可在下面链接中找素材

iconfont-阿里巴巴矢量图标库

3.生成.ico格式文件,下载到本地,文件名保持为favicon.ico

2. 上传到服务器的网站目录

根据你的 Apache 虚拟主机配置,找到web1.gaoxf.com的网站根目录。

用 scp 或 xftp 把本地的 favicon.ico 上传到这个目录下。

示例命令(Linux 服务器,本地终端执行):

# 假设你的服务器 IP 是 12.13.14.4,网站根目录是 /usr/local/httpd2467/docs/web1.gaoxf.com/

scp /本地路径/favicon.icoroot@12.13.14.4:/usr/local/httpd2467/docs/web1.gaoxf.com/

3. 给文件设置权限(避免权限问题)

登录服务器,给文件设置 Apache 能读取的权限:

# 进入网站根目录

cd /usr/local/httpd2467/docs/web1.gaoxf.com/

# 设置权限

chmod 644 favicon.ico

chown apache:apache favicon.ico # 或你的 Apache 运行用户,比如 www-data

4. 验证是否生效

1.清空浏览器缓存(Ctrl+Shift+R 强制刷新页面)

2.再次查看访问日志:

tail -f /usr/local/httpd2467/logs/web1.gaoxf.com-access_log

3.正常情况下,请求会变成:

12.13.14.4- - [18/May/2026:xx:xx:xx +0800] "GET /favicon.ico HTTP/1.1" 200 xxx

状态码 200 表示请求成功,404 就消失了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 22:26:10

万字详解:RAG 向量索引算法与向量数据库架构及实战

在 Retrieval-Augmented Generation (RAG) 架构中&#xff0c;大语言模型&#xff08;LLM&#xff09;的生成能力决定了回答的“下限”&#xff0c;而检索系统的质量则决定了回答的“上限”。作为 RAG 的核心引擎&#xff0c;向量数据库及其底层的向量索引算法&#xff0c;直接…

作者头像 李华
网站建设 2026/5/20 22:26:03

选四川GEO优化服务商前要搞懂的4个核心问题

2026四川企业AI营销趋势&#xff1a;GEO优化需求同比增长127% 2026年四川企业数字化营销进入AI驱动的新阶段&#xff0c;基于区域定位、大模型收录优化的GEO服务&#xff0c;凭借精准获客、转化效率高的优势&#xff0c;市场需求同比2025年增长127%。不少企业在选型过程中普遍遇…

作者头像 李华
网站建设 2026/5/20 22:25:45

(一) Harness-1. 基于智能体的上下文工程:让大模型通过“不断升级攻略本”来实现自我进化(ACE)

基于智能体的上下文工程&#xff1a;让大模型通过“不断升级攻略本”来实现自我进化1. 基本概念1.1. 上下文适应的大语言模型1.1.1. 模型权重1.1.2. 上下文适应1.2. 智能体上下文工程1. 基本概念 1.1. 上下文适应的大语言模型 大语言模型&#xff08;LLM&#xff09;的应用&a…

作者头像 李华
网站建设 2026/5/20 22:25:44

彻底清理Windows驱动垃圾:Driver Store Explorer终极清理指南

彻底清理Windows驱动垃圾&#xff1a;Driver Store Explorer终极清理指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否发现Windows系统盘空间不断缩小&#xff0c;却找不到罪魁…

作者头像 李华
网站建设 2026/5/20 22:24:59

【头歌Educoder】国防科大 模板与 STL

第1关&#xff1a;初识模板函数任务目的本关目的&#xff1a;编写你的第一个模板函数。编程要求本题的要求为&#xff1a;编写模板函数 template <typename T, int n> int getIndex (T a[], T x)返回长度为 n 的数组 a 中 x 第一个出现的位置&#xff08;下标&#xff09…

作者头像 李华
网站建设 2026/5/20 22:22:17

应对2026AIGC检测算法:5大热门降AI工具实测与免费提示词秘籍

为了找到真正靠谱的解决方案&#xff0c;我过去测试了市面上大部分号称能降低ai率的方法。从一分钱不花的模型指令&#xff0c;到各种付费的专业降ai率工具&#xff0c;用手头的文本做了几十次实操对比。说心里话&#xff0c;里面套路确实不少&#xff0c;有些方法用完后语句颠…

作者头像 李华