0

0

使用 Apache 部署 Go 应用和 MediaWiki

聖光之護

聖光之護

发布时间:2025-10-12 12:14:16

|

1022人浏览过

|

来源于php中文网

原创

使用 apache 部署 go 应用和 mediawiki

本文旨在指导如何在已有 MediaWiki 网站的 Apache 服务器上,无需 root 权限的情况下部署 Go 应用。通过配置 Apache 的 `mod_proxy` 模块,将特定 URL 路径的请求转发到 Go 应用,实现 Go 应用和 MediaWiki 的共存。我们将详细介绍配置步骤,并提供注意事项,确保部署顺利进行。

在没有 root 权限的情况下,在已有的 Apache 服务器上部署 Go 应用需要一些技巧。核心思路是利用 Apache 的 mod_proxy 模块,将特定 URL 路径的请求代理到运行 Go 应用的服务器和端口。由于无法直接修改全局 Apache 配置文件,需要寻找可行的替代方案,例如 .htaccess 文件(如果 Apache 配置允许)。

准备 Go 应用

首先,确保你的 Go 应用已经编译成可执行文件,并且可以在服务器上运行。以下是一个简单的 Go Web 应用示例:

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello World")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

将以上代码保存为 main.go,然后使用 go build main.go 命令编译生成可执行文件 main。将此可执行文件上传到你的网站目录中,例如 /home/your_user/public_html/goapp/main。

配置 Apache 的 .htaccess 文件 (如果允许)

如果你的 Apache 服务器允许使用 .htaccess 文件,这是最方便的配置方法。在你的网站目录中(例如 /home/your_user/public_html/),创建一个名为 .htaccess 的文件,并添加以下内容:


    RewriteEngine On
    RewriteRule ^goapp/(.*)$ http://localhost:8080/$1 [P,L]



    ProxyPass /goapp/ http://localhost:8080/
    ProxyPassReverse /goapp/ http://localhost:8080/

解释:

Wordware
Wordware

Wordware是一个自然语言编程工具,使任何人都可以开发、迭代和部署有用的AI应用程序。

下载
  • 和 RewriteEngine On: 启用 URL 重写引擎,允许更灵活的 URL 映射。
  • RewriteRule ^goapp/(.*)$ http://localhost:8080/$1 [P,L]: 将所有以 /goapp/ 开头的 URL 请求代理到 http://localhost:8080/。[P] 标志表示使用代理,[L] 标志表示这是最后一个规则。
  • : 确保 mod_proxy 模块已启用。
  • ProxyPass /goapp/ http://localhost:8080/:将 /goapp/ 路径下的所有请求转发到 http://localhost:8080/。
  • ProxyPassReverse /goapp/ http://localhost:8080/:修改响应头,确保重定向和链接指向正确的 URL。

重要提示:

  • 将 localhost 替换为实际运行 Go 应用的服务器地址(如果不是同一台服务器)。
  • 将 8080 替换为 Go 应用实际监听的端口。
  • 确保 Apache 启用了 mod_rewrite 和 mod_proxy 模块。可以通过 phpinfo() 函数查看已启用的模块,或者联系服务器管理员。
  • 如果 .htaccess 文件不起作用,可能是因为 Apache 配置中 AllowOverride 指令设置为 None。你需要联系服务器管理员修改此配置。

启动 Go 应用

使用 SSH 连接到你的服务器,进入 Go 应用所在的目录,然后运行 Go 应用:

cd /home/your_user/public_html/goapp/
./main

为了确保 Go 应用在后台持续运行,可以使用 nohup 命令:

nohup ./main &

测试

现在,你可以通过浏览器访问 www.univ.edu/me/goapp/ 来测试你的 Go 应用是否部署成功。如果一切配置正确,你应该看到 "Hello World" 的输出。

注意事项和总结

  • 安全性: 确保 Go 应用的安全性,避免潜在的安全漏洞。
  • 错误处理: 在 Go 应用中添加适当的错误处理机制,以便在出现问题时能够及时发现和解决。
  • 日志: 配置 Go 应用的日志记录,以便追踪和调试问题。
  • 资源限制: 考虑服务器的资源限制,例如 CPU 和内存,确保 Go 应用不会过度消耗资源。
  • 联系管理员: 如果遇到无法解决的问题,请及时联系服务器管理员寻求帮助。

通过以上步骤,你可以在没有 root 权限的情况下,成功地将 Go 应用部署到已有的 Apache 服务器上,并与 MediaWiki 共存。记住,.htaccess 文件的使用依赖于 Apache 的配置,如果无法使用,则需要联系服务器管理员进行配置。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
apache是什么意思
apache是什么意思

Apache是Apache HTTP Server的简称,是一个开源的Web服务器软件。是目前全球使用最广泛的Web服务器软件之一,由Apache软件基金会开发和维护,Apache具有稳定、安全和高性能的特点,得益于其成熟的开发和广泛的应用实践,被广泛用于托管网站、搭建Web应用程序、构建Web服务和代理等场景。本专题为大家提供了Apache相关的各种文章、以及下载和课程,希望对各位有所帮助。

411

2023.08.23

apache启动失败
apache启动失败

Apache启动失败可能有多种原因。需要检查日志文件、检查配置文件等等。想了解更多apache启动的相关内容,可以阅读本专题下面的文章。

931

2024.01.16

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

434

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

420

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2394

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2140

2024.08.16

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

8

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

8

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.4万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号