天天看點

Apache httpd 代理伺服器搭建

官方文檔 http://httpd.apache.org/docs/2.4/

分為 docker環境搭建,Windows 環境搭建

==============================================================================================

docker環境搭建

1、拉取鏡像 docker pull httpd

2、建立容器把apache2/conf 拷貝到主控端

#把本地目錄 ~/apache2/conf 挂載到容器的/data 目錄下
sudo docker run -it -v ~/apache2/conf:/data httpd bash
#拷貝配置檔案到主控端挂載的目錄中
[email protected]:/usr/local/apache2# cp -r conf/* /data/
#退出容器 然後這個容器就沒有用了
[email protected]:/usr/local/apache2# exit

修改配置檔案
第67行
Listen 80
改為需要使用的端口或 IP:port 形式

打開需要加載的子產品

    LoadModule access_compat_module modules/mod_access_compat.so

    LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so

    LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

    LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so

    LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so

    LoadModule proxy_module modules/mod_proxy.so

    LoadModule proxy_connect_module modules/mod_proxy_connect.so

    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

    LoadModule proxy_html_module modules/mod_proxy_html.so

    LoadModule proxy_http_module modules/mod_proxy_http.so

    LoadModule xml2enc_module modules/mod_xml2enc.so


開啟代理,可以參考 
http://httpd.apache.org/docs/trunk/mod/mod_proxy.html
https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

通路無密碼的配置需要加入這段
    ProxyRequests On
    <Proxy *>
       Require all granted
    </Proxy>

通路有密碼的配置需要加入這段
    ProxyRequests On
    <Proxy *> 
        AuthType Basic
        AuthName "Restricted Resource"
        AuthBasicProvider file
        AuthUserFile "C:/Apache24/bin/.htpasswd"
        Require valid-user
    </Proxy>

有密碼的情況需要生成配置檔案 "C:/Apache24/bin/.htpasswd" 在C:/Apache24/bin目錄下執行指令
    htpasswd -bc C:\Apache24\bin\.htpasswd admin 123456
使用者名:admin
密碼:123456


#建立容器,把配置檔案挂載進去,把端口映射出來
sudo docker run -itd -v ~/apache2/conf:/usr/local/apache2/conf -p 8888:80 --name httpd httpd


           

docker httpd 代理伺服器 這就搭建好了

====================================================================================

Windows x64 環境

需要安裝環境依賴 Visual C++ 2017 x64

https://aka.ms/vs/15/release/VC_redist.x64.exe

一、下載下傳Apache Haus

https://www.apachehaus.com/cgi-bin/download.plx

64位系統下載下傳連接配接 https://www.apachehaus.com/cgi-bin/download.plx?dli=jZkRX50UNVTT6h2KSdkSzAlVOpkVFVFdSdkSNp1Z

解壓後有個 readme_first.html 裡面有安裝方法

二、修改配置檔案

但是這裡需要先修改一下配置檔案,裡面沒有說明

打開 Apache24/conf/httpd.conf

第39行
Define SRVROOT "/Apache24"
修改為Apache本地路徑 官方建議放在磁盤根目錄 是以我放在 c:\Apache24

第67行
Listen 80
改為需要使用的端口或 IP:port 形式

打開需要加載的子產品

    LoadModule access_compat_module modules/mod_access_compat.so

    LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so

    LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

    LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so

    LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so

    LoadModule proxy_module modules/mod_proxy.so

    LoadModule proxy_connect_module modules/mod_proxy_connect.so

    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

    LoadModule proxy_html_module modules/mod_proxy_html.so

    LoadModule proxy_http_module modules/mod_proxy_http.so

    LoadModule xml2enc_module modules/mod_xml2enc.so


開啟代理,可以參考 
http://httpd.apache.org/docs/trunk/mod/mod_proxy.html
https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

通路無密碼的配置需要加入這段
    ProxyRequests On
    <Proxy *>
       Require all granted
    </Proxy>

通路有密碼的配置需要加入這段
    ProxyRequests On
    <Proxy *> 
        AuthType Basic
        AuthName "Restricted Resource"
        AuthBasicProvider file
        AuthUserFile "C:/Apache24/bin/.htpasswd"
        Require valid-user
    </Proxy>

有密碼的情況需要生成配置檔案 "C:/Apache24/bin/.htpasswd" 在C:/Apache24/bin目錄下執行指令
    htpasswd -bc C:\Apache24\bin\.htpasswd admin 123456
使用者名:admin
密碼:123456

           

三、安裝服務

管理者運作cmd

執行 httpd -k install

解除安裝 httpd -k uninstall

啟動 httpd -k start

停止 httpd -k stop

重新開機 httpd -k restart

在手機上或電腦上開啟代理:伺服器IP:設定的端口

就可以使用代理了