日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pac自动代理

發(fā)布時(shí)間:2024/3/12 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pac自动代理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 1.pac 定義
  • 2. 參考配置地址
  • 3. 實(shí)際配置案例
    • 3.1 編寫pac文件
      • 3.1.1 return 語(yǔ)句有三種指令:
      • 3.1.2 內(nèi)置函數(shù)
        • 3.1.2.1 dnsDomainIs
        • 3.1.2.2 shExpMatch
        • 3.1.2.3 isInNet
        • 3.1.2.4 主機(jī)ip
        • 3.1.2.5 dnsResolve
        • 3.1.2.6 isPlainHostName
        • 3.1.2.7 isResolvable
        • 3.1.2.8 dnsDomainLevels
    • 3.2 配置nginx,將pac文件上傳到服務(wù)器
    • 3.3 配置自動(dòng)代理

1.pac 定義

PAC,一個(gè)自動(dòng)代理配置腳本,包含了很多使用 JavaScript 編寫的規(guī)則,它能夠決定網(wǎng)絡(luò)流量走默認(rèn)通道還是代理服務(wù)器通道,控制的流量類型包括:HTTP、HTTPS 和 FTP。

本質(zhì)是一段js

function FindProxyForURL(url, host) { return "DIRECT"; }

2. 參考配置地址

地址:pac配置地址

3. 實(shí)際配置案例

3.1 編寫pac文件

下面這段表示的是如果是本機(jī)ip192.168.8.0網(wǎng)段的,就走192.168.2.207:443代理,如果不是的話,就直連

function FindProxyForURL(url, host) {if (isInNet(myIpAddress(), "192.168.8.0", "255.255.255.0")) {return "PROXY 192.168.2.207:443";}return "DIRECT";}

3.1.1 return 語(yǔ)句有三種指令:

  • DIRECT,表示無(wú)代理直接連接
  • PROXY host:port,表示走h(yuǎn)ost:port 的 proxy 服務(wù)
  • SOCKS host:port,表示走h(yuǎn)ost:port 的 socks 服務(wù)

3.1.2 內(nèi)置函數(shù)

3.1.2.1 dnsDomainIs

類似于 ==,但是對(duì)大小寫不敏感,

if (dnsDomainIs(host, "google.com") || dnsDomainIs(host, "www.google.com")) { return "DIRECT"; }

3.1.2.2 shExpMatch

Shell 正則匹配,* 匹配用的比較多,可以是*.http://example.com,也是可以下面這樣,

if (shExpMatch(host, "vpn.domain.com") || shExpMatch(url, "http://abcdomain.com/folder/*")) { return "DIRECT"; }

3.1.2.3 isInNet

判斷是否在網(wǎng)段內(nèi)容,比如 10.1.0.0 這個(gè)網(wǎng)段,10.1.1.0 就在網(wǎng)段中,

if (isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0")) { return "DIRECT"; }

3.1.2.4 主機(jī)ip

if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0")) { return "PROXY 10.10.5.1:8080"; }

3.1.2.5 dnsResolve

通過(guò) DNS 查詢主機(jī) ip,

if (isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") || isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0") || isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") || isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0")) { return "DIRECT"; }

3.1.2.6 isPlainHostName

判斷是否為諸如http://barret/,http://server-name/ 這樣的主機(jī)名,

if (isPlainHostName(host)) { return "DIRECT"; }

3.1.2.7 isResolvable

判斷主機(jī)是否可訪問

if (isResolvable(host)) { return "PROXY proxy1.example.com:8080"; }

3.1.2.8 dnsDomainLevels

返回是幾級(jí)域名,比如dnsDomainLevels(http://barretlee.com) 返回的結(jié)果就是 1,

if (dnsDomainLevels(host) > 0) { return "PROXY proxy1.example.com:8080"; } else { return "DIRECT"; }

3.2 配置nginx,將pac文件上傳到服務(wù)器

本案例放置pac文件的路徑

nginx 配置

location /proxy.pac {alias /usr/local/openresty/nginx/pac/proxy.pac; //絕對(duì)路徑}

3.3 配置自動(dòng)代理

總結(jié)

以上是生活随笔為你收集整理的pac自动代理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。