apache反向代理配置访问本地项目

为什么会写这篇文章呢?最近一段时间有一个项目需要在本地跑起来,但是需要反向代理才能让项目跑起来,网上搜了很多教程,但是都没有成功,没办法,自己慢慢摸索搜集资料总结了一下这篇文章:

下面就是如何配置apache的一些详细步骤:

第一步:先去官网下载对应的apache版本:

The Apache HTTP Server Project​httpd.apache.org/

第二步:选择对应的版本号下载,这里我选择的第一个版本下载:

第三步:将apache解压至任意目录,最好是英文路径,名字任意取:

第四步:在Apache24/conf目录下修改httpd.conf文件,需要修改的东西如下:

1.修改ServerRoot和Define SRVROOT的路径,这里需要把路径修改成自己实际apache安装路径,每个人的安装路径不一样,在地38和39行:

修改ServerRoot和Define SRVROOT路径

Define SRVROOT "F:\ap\Apache24"//路径为解压出来的apache的路径 ServerRoot "F:\ap\Apache24"//路径为解压出来的apache的路径

2.可修改ServerName,将前面的“#”去掉,并改为

修改Server Name

ServerName localhost:80 // 默认就是这个,也可以修改成127.0.0.1

3.修改DocumentRoot和<Directory....>,DocumentRoot表示发布目录,发布在这个目录下的任何工程都会在apache服务启动时被装载成标准的web工程,我们的项目就会从这里启动,在代码248和249行项目启动目录

DocumentRoot "D:\cd\demo"//这两个路径必须要一样,而且就是项目存放的地址,这里指定从demo文件启动 <Directory "D:\cd\cd-app\dist">

4.开启反向代理模块,需要开启的模块如下,直接去掉前面的“#”就好了:开启反向代理模块

LoadModule access_compat_module modules/mod_access_compat.so//代码第74行 LoadModule proxy_module modules/mod_proxy.so//代码第142行 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so//代码第143行 LoadModule proxy_http_module modules/mod_proxy_http.so//代码第150行

5.最后直接在文件的最后面添加反向代理地址:反向代理地址

<VirtualHost *:80> ProxyPass 地址 ProxyPassReverse 地址 </VirtualHost>

6.修改端口号:可以直接默认修改端口号

Listen 80 // 这里可以任意修改端口号,譬如8080

第五步:上面的文件改好后就该安装apache了,由于我们下载的是压缩包,所以我们需要手动注册服务。

1.我们进入解压的apache目录里面的bin文件夹,在空白地方按住shift键并鼠标右击,选择在这里打开 命令行:

2.然后执行命令:

httpd.exe -k install -n apache//表示安装apache

这里可能会报下面类似的错误:

根据提示,我们从新输入命令行:

注意,如果遇到此错误,需要的是在此处以管理员运行命令行:

Error rendering macro code: Invalid value specified for parameter firstlineErrors reported here must be corrected before the service can be started

3.提示安装成功,看到errer不用担心:

第六步:在命令行输入:.\httpd.exe,然后打开浏览器,本地输入localhost就可以访问项目了,如果刚刚改了端口号,需要输入对应的端口号,也可能会出现端口被占用的情况,这个时候自行百度解决端口问题。

补充:一些常用的apache服务命令: httpd -k install 将Apache注册为windows服务,可以指定的服务名为"apache"。 httpd -k install -n "服务名" 将Apache注册为windows服务,自己指定一个服务名字。 httpd -k install -n "服务名" -f "conf\my.conf" 将Apache注册为windows服务,自己指定一个服务名字,并且使用特定配置文件。 httpd.exe -k uninstall -n "MyServiceName" 移除Apache服务,自己制定一个服务名字。 httpd.exe -k start -n "MyServiceName" 启动Apache服务。 httpd.exe -k stop -n "MyServiceName" 或httpd.exe -k shutdown -n "MyServiceName" 停止Apache服务。 httpd.exe -k restart -n "MyServiceName" 重启Apache服务。 httpd.exe -n "MyServiceName" -t