在windows配置Apache httpd代理服務器

Apache httpd 代理服務搭建

 

簡介:使用Apache httpd來搭建代理服務是因爲其免費,開源,可控性較高,文檔較全。本文是以windows系統來代理服務器,linux客戶端使用此代理服務。若是想windows使用其服務,比如瀏覽器使用直接配置瀏覽器的網絡配置爲代理即可。

 

一. 下載安裝

下載地址:https://www.apachehaus.com/cgi-bin/download.plx

下載最新的適合自己的windows系統版本即可,我目前安裝的版本爲

httpd-2.4.29

下載後解壓

 

二. 配置代理信息

打開配置文件Apache24/conf/httpd.conf: 

38-39行修改根目錄爲自己放置Apache24的目錄,這裏不修改啓動會報錯

Define SRVROOT"C:/Users/lijianguo/Downloads/httpd-2.4.29-o102n-x64-vc14-r2/Apache24"

ServerRoot"${SRVROOT}"

Listen端口修改(修改成自己要監聽的端口和ip)

Listen172.16.56.45:9001

加載所需的模塊

LoadModuleaccess_compat_module modules/mod_access_compat.so

LoadModulelbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so

LoadModulelbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

LoadModulelbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so

LoadModulelbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so

LoadModuleproxy_module modules/mod_proxy.so

LoadModuleproxy_connect_module modules/mod_proxy_connect.so

LoadModuleproxy_ftp_module modules/mod_proxy_ftp.so

LoadModuleproxy_html_module modules/mod_proxy_html.so

LoadModuleproxy_http_module modules/mod_proxy_http.so

LoadModulexml2enc_module modules/mod_xml2enc.so

註釋掉ssl模塊,不然啓動的時候需要443端口會報錯

#LoadModulessl_module modules/mod_ssl.so

 

在最後添加Proxy配置, 開啓Apache正向代理並允許所有的請求可以訪問代理

ProxyRequestsOn

<Proxy *>

    Requireall granted

</Proxy>

 

三. 啓動運行

有兩種方式可以啓動: 
1.雙擊httpd.exe 
2.以管理員身份進入命令行到bin目錄,使用命令httpd-k install 把Apache安裝成系統服務,在服務列表裏面可以查看是否安裝成功 


然後使用命令httpd -kstart 啓動服務 
httpd的命令參數詳情可以使用httpd -h 查看

httpd -krestart //重啓

httpd -k stop//停止

記得關閉本代理服務器電腦的防火牆,局域網內使用代理只需關閉域網絡防火牆


四. 客戶端配置驗證

在需要用到linux機器上配置如下

vi /etc/profile  //編輯此文件,在最下方添加如下代理配置

http_proxy=172.16.56.45:9901

https_proxy=$http_proxy

no_proxy=localhost,127.0.0.1

export http_proxyhttps_proxy no_proxy

其中

http_proxy:http協議使用代理服務器地址;

https_proxy:https協議使用安全代理地址;

172.16.56.45::代理地址,可以是IP,也可以是域名;

9901:使用的端口;

no_proxy:不使用代理的主機或IP。

保存退出,註銷重新登陸系統即可生效。

驗證之前不能連接外網的linux機器上驗證是否可以通過代理成功上網


同時可打開Apache/logs/access.log日誌查看訪問路徑


連接成功!

關閉代理服務


再次驗證linux機器是否還能上外網


發現連接失敗,至此代理服務安裝成功,啓動httpd服務可正常使用。


如果只是代碼裏面需要用到代理則不用在環境變量裏面配置,如下java用httpClient使用代理調用接口的例子

public class ClientExecuteProxy {

    public static void main(String[] args)throws Exception {
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            HttpHost target = new HttpHost("httpbin.org", 443, "https");
            HttpHost proxy = new HttpHost("127.0.0.1", 8080, "http");

            RequestConfig config = RequestConfig.custom()
                    .setProxy(proxy)
                    .build();
            HttpGet request = new HttpGet("/");
            request.setConfig(config);

            System.out.println("Executing request " + request.getRequestLine() + " to " + target + " via " + proxy);

            CloseableHttpResponse response = httpclient.execute(target, request);
            try {
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                System.out.println(EntityUtils.toString(response.getEntity()));
            } finally {
                response.close();
            }
        } finally {
            httpclient.close();
        }
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章