Iptables
僅用於傳出流量的 Squid 透明代理
我有一個 API 有點重的 Rails 伺服器,所以我想在所有埠 80 活動和現實世界之間執行一個 Squid 記憶體透明代理。但是,我不需要傳入流量通過該 Squid 代理。例如
Rails -> Squid -> Internet Internet -> Rails
我無法想像這是一個不尋常的設置,但我似乎無法在網上找到任何範例。遵循透明的 Squid 教程剛剛結束,所有進入 Squid 代理的傳入流量和傳出流量似乎直接經過它(儘管我對此不太確定)。
這是
ifconfig
的輸出。我想這將與任何答案有關。eth0 Link encap:Ethernet HWaddr f2:3c:91:ae:33:6b inet addr:176.58.105.173 Bcast:176.58.105.255 Mask:255.255.255.0 inet6 addr: fe80::f03c:91ff:feae:336b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:330029 errors:0 dropped:0 overruns:0 frame:0 TX packets:185242 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:333723993 (333.7 MB) TX bytes:34410551 (34.4 MB) Interrupt:44 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:684735 errors:0 dropped:0 overruns:0 frame:0 TX packets:684735 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:54837497 (54.8 MB) TX bytes:54837497 (54.8 MB)
我不會費心設置透明代理。相反,只需在 127.0.0.1:3128 上執行 Squid,然後使用 Net::HTTP::Proxy 進行 API 呼叫。文件在這裡。我不建議通過代理啟動所有內容,而是轉移特定呼叫,直到您對設置感到滿意為止。
關於調整 Squid 記憶體的大小,如果分配 128MB 的記憶體,Squid 總共將使用大約 196MB,包括記憶體和成本。如果您認為您將接近機器的最大記憶體,我會設置一些交換空間監控,這通常是您超額訂閱記憶體的最佳指標。