使用squid搭建http和https的代理服务器设置指南
我们曾经在介绍nginx的时候顺便使用nginx做过正向代理的设定,但是如果希望支持https的话,直接使用nginx则较为困难,而使用在这方面术业有专攻的squid则要简单的多。这篇文章用于记录在centos7上安装和设定squid3.5来实现http和https的步骤。
机器配置
[root@liumiaocn~]#uname-a Linuxmail.163.com3.10.0-514.el7.x86_64#1SMPTueNov2216:42:41UTC2016x86_64x86_64x86_64GNU/Linux [root@liumiaocn~]# [root@liumiaocn~]#cat/etc/redhat-release CentOSLinuxrelease7.3.1611(Core) [root@liumiaocn~]#
安装squid
安装命令:yuminstallsquid
确认版本
版本确认:rpm-qa|grepsquid
[root@liumiaocn~]#rpm-qa|grepsquid squid-migration-script-3.5.20-12.el7.x86_64 squid-3.5.20-12.el7.x86_64 [root@liumiaocn~]#
确认ip_forward
ip_forward需要设定为1,缺省centos已设定,详细如下:
[root@liumiaocn~]#sysctl-a|grep-wip_forward net.ipv4.ip_forward=1 [root@liumiaocn~]#
修改设定文件
修改前
[root@liumiaocn~]#grep-n'http_accessdenyall'/etc/squid/squid.conf 56:http_accessdenyall [root@liumiaocn~]#
修改后
[root@liumiaocn~]#grep-nhttp/etc/squid/squid.conf|grep-wall 56:http_accessallowall [root@liumiaocn~]#
启动squid
systemctlstartsquid
问题1:libssl错误
启动squid时提示如下错误
squid:relocationerror:squid:symbolSSL_set_alpn_protos,versionlibssl.so.10notdefinedinfilelibssl.so.10withlinktimereference
原因:未安装openssl
对应方法:yuminstallopenssl
安装之后启动squid即可:
[root@liumiaocn~]#systemctlstartsquid [root@liumiaocn~]#systemctlstatussquid ●squid.service-Squidcachingproxy Loaded:loaded(/usr/lib/systemd/system/squid.service;disabled;vendorpreset:disabled) Active:active(running)sinceTue2018-06-0520:07:56CST;8sago Process:28548ExecStart=/usr/sbin/squid$SQUID_OPTS-f$SQUID_CONF(code=exited,status=0/SUCCESS) Process:28540ExecStartPre=/usr/libexec/squid/cache_swap.sh(code=exited,status=0/SUCCESS) MainPID:28551(squid) Memory:14.3M CGroup:/system.slice/squid.service ├─28551/usr/sbin/squid-f/etc/squid/squid.conf ├─28553(squid-1)-f/etc/squid/squid.conf └─28557(logfile-daemon)/var/log/squid/access.log Jun0520:07:56liumiaocnsystemd[1]:StartingSquidcachingproxy... Jun0520:07:56liumiaocnsquid[28551]:SquidParent:willstart1kids Jun0520:07:56liumiaocnsquid[28551]:SquidParent:(squid-1)process28553started Jun0520:07:56liumiaocnsystemd[1]:StartedSquidcachingproxy. [root@liumiaocn~]#
问题2:无法进行域名解析
此时发现无法使用域名只能使用ip来访问
原因:dns未配置,在squid的配置文件中添加8.8.8.8和8.8.4.4
[root@liumiaocn~]#grepnameserver/etc/squid/squid.conf dns_nameservers8.8.8.88.8.4.4 [root@liumiaocn~]# [root@liumiaocn~]#systemctlrestartsquid [root@liumiaocn~]#
客户端的访问
squid的缺省port为3128,在这里没有修改,在客户端使用如下方式即可访问:
http方式
exporthttp_proxy=http://192.168.163.117:3128
curlhttp://www.baidu.com
https方式
exporthttps_proxy=http://192.168.163.117:3128
curlhttps://www.baidu.com
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接