首页 > 代码库 > 三.apache 网页重写 squid

三.apache 网页重写 squid

#######网页重写########
把所有80端口的请求全部重定向由https来处理
systemctl start httpd firewalld
cd /var/www/html/
[root@mailwestos html]# firewall-cmd --permanent --add-service=http
success
[root@mailwestos html]# firewall-cmd --permanent --add-service=https
success
[root@mailwestos html]# firewall-cmd --reload
yum install mod_ssl
安装https
genkey www.westos.com

[root@mailwestos conf.d]# vim news.conf
---------------------------------------
<Virtualhost *:80>
        ServerName news.westos.com
        DocumentRoot /var/www/virtual/news/html
        Customlog logs/news.log         combined
</Virtualhost>
<Directory "/var/www/virtual/news/html">
        Require all granted
</Directory>
------------------------------------------

[root@mailwestos conf.d]# cp news.conf ent.conf

[root@mailwestos conf.d]# vim ent.conf
------------------------------------------
<Virtualhost *:80>
        ServerName ent.westos.com
        DocumentRoot /var/www/virtual/ent/html
        Customlog logs/ent.log          combined
</Virtualhost>
<Directory "/var/www/virtual/ent/html">
        Require all granted
</Directory>
-------------------------------------------

mkdir -p /var/www/virtual/ent/html
mkdir -p /var/www/virtual/news/html
echo news.westos.com > /var/www/virtual/news/html/index.html
echo ent.westos.com > /var/www/virtual/ent/html/index.html
systemctl restart httpd

vim /etc/httpd/conf.d/news.conf  ##网页重写关键一步
-----------------------------------------------------------
<Virtualhost *:80>
        ServerName news.westos.com
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</Virtualhost>
<Directory "/var/www/virtual/news/html">
        Require all granted
</Directory>
<Virtualhost *:443>
        ServerName news.westos.com
        DocumentRoot /var/www/virtual/news/html
        Customlog log/news-443.log      combined
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
        SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
</Virtualhost>
--------------------------------------------------------------
##在vim中 :sp /etc/httpd/conf.d/ssl.conf 可以在vim中在打开另一个vim
##将两个文件分屏显示,使用"ctrl+w 上|下"来切换

用firefox测试



#####CGI#####
CGI
通用网关接口(CGI)是网站上放置动态内容的最简单的方法。CGI脚本可用于许多目
的,但是谨慎控制使用哪个CGI脚本以及允许谁添加和运行这些脚本十分重要。编写质量差的CGI
脚本可能为外部攻击者提供了破坏网站及其内容安全性的途径。因此,在Web服务器级别和
SELinux策略级别,都存在用于限制CGI脚本使用的设置。

cd /var/www/html/
vim index.php
<?php
phpinfo ();
?>

vim /etc/httpd/conf/httpd.conf
-----------------------------------------------
164     DirectoryIndex index.php index.html
:wq
-----------------------------------------------
 systemctl reload httpd.service

测试:http://172.25.254.100(需清空缓存:ctrl+shift+delete)
无任何显示

mkdir cgi
cd cgi/
vim index.cgi
---------------------------------
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
---------------------------------
yum install httpd-manual -y
172.25.254.100/manual/

[root@mailwestos cgi]# perl index.cgi
Content-type: text/html

2016年 12月 15日 星期四 06:05:17 EST

vim /etc/httpd/conf.d/default.conf
---------------------------------------------
<Virtualhost _default_:80>
         Documentroot /var/www/html
         Customlog logs/default.log   combined
</Virtualhost>
<Directory "/var/www/html/cgi">
         Options +ExecCGI
        AddHandler cgi-script .cgi
</Directory>
----------------------------------------------

设置安全上下文
[root@mailwestos www]# ls -Zd cgi-bin/
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin/
[root@mailwestos www]# semanage fcontext -a -t httpd_sys_script_exec_t ‘/var/www/html/cgi(/.*)?‘
[root@mailwestos www]# restorecon -RvvF /var/www/html/cgi/
restorecon reset /var/www/html/cgi context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:httpd_sys_script_exec_t:s0
restorecon reset /var/www/html/cgi/index.cgi context unconfined_u:object_r:httpd_sys_content_t:s0->system_u:object_r:httpd_sys_script_exec_t:s0

chmod +x /var/www/html/cgi/index.cgi   ##加执行权限

检验
172.25.254.100/cgi/index.cgi
 Thu Dec 15 06:20:37 EST 2016


########论坛搭建########
[root@mailwestos conf.d]# yum install mariadb-server -y
......
[root@mailwestos conf.d]# vim /etc/my.cnf
-----------------------------------------------
 10 skip-networking=1
:wq
-----------------------------------------------
[root@mailwestos conf.d]# systemctl start mariadb

[root@mailwestos conf.d]# mysql_secure_installation
......
>Set root password "westos"
[root@mailwestos conf.d]# cd /var/www/html/
[root@mailwestos html]# ls
cgi  index.html  index.php

[root@foundation50 pub]# pwd
/root/Documents/RHCE/LFTP/pub
[root@foundation50 pub]# scp Discuz_X3.2_SC_UTF8.zip root@172.25.254.100:/var/www/html/
root@172.25.254.100‘s password:
Discuz_X3.2_SC_UTF8.zip                       100%   12MB  11.9MB/s   00:01    

[root@mailwestos html]# ls
cgi  Discuz_X3.2_SC_UTF8.zip  index.html  index.php
[root@mailwestos html]# unzip Discuz_X3.2_SC_UTF8.zip
......
[root@mailwestos html]# ls
cgi  Discuz_X3.2_SC_UTF8.zip  index.html  index.php  readme  upload  utility
[root@mailwestos html]# less readme/readme.txt
-----------------------------------------------
截取重要内容:

+----------------------------------+
 Discuz! X 社区软件的安装
+----------------------------------+
1. 上传 upload 目录中的文件到服务器
2. 设置目录属性(windows 服务器可忽略这一步)
        以下这些目录需要可读写权限
        ./config
        ./data 含子目录
3. 执行安装脚本 /install/
   请在浏览器中运行 install 程序,即访问 http://您的域名/论坛目录/install/
4. 参照页面提示,进行安装,直至安装完毕

-----------------------------------------------
[root@mailwestos html]# chmod 777 upload/data/ upload/config/

>测试:http://172.25.50.100/upload/
-->我同意
>所有文件不可写,mysql不支持

[root@mailwestos html]# setenforce 0

>刷新网页
>只有前4个文件显示可写,mysql不支持

[root@mailwestos html]# chmod 777 upload/ -R

>刷新网页
>所有文件可写,mysql不支持

[root@mailwestos html]# yum install php-mysql -y
......
[root@mailwestos html]# systemctl reload httpd

测试
>刷新网页
>所有文件可写,mysql支持
-->下一步-->下一步
-->数据库密码:westos-->管理员密码:(自行设定)-->下一步
>等待安装完成,重新输入网址:http://172.25.50.100/upload/
>安装成功!!!

--安装完成,以下为体验--
-->输入管理员密码-->登陆-->输入验证码-->登陆
-->用户组:管理员
-->模块管理
-->管理中心


########squid正向代理#######
[root@foundation50 ~]# ls /etc/httpd/conf.d/
autoindex.conf  README  userdir.conf  welcome.conf
[root@foundation50 ~]# yum install squid -y
......
[root@foundation50 ~]# ls /etc/httpd/conf.d/
autoindex.conf  README  squid.conf  userdir.conf  welcome.conf
[root@foundation50 ~]# vim /etc/squid/squid.conf
-----------------------------------------------
 56 http_access allow all

 62 cache_dir ufs /var/spool/squid 100 16 256
:wq
-----------------------------------------------
[root@foundation50 ~]# ls /var/spool/squid/
##什么都没有
[root@foundation50 ~]# systemctl start squid
[root@foundation50 ~]# systemctl enable squid.service
Created symlink from /etc/systemd/system/multi-user.target.wants/squid.service to /usr/lib/systemd/system/squid.service.
[root@foundation50 ~]# netstat -antlpe |grep squid
tcp6       0      0 :::3128                 :::*                    LISTEN      0          531476     7398/(squid-1)

[root@web1 conf.d]# firefox &
>测试:www.baidu.com
>提示:一直是"Connecting..."状态
-->Edit-->Preferences-->Advanced-->Network-->Settings...
-->Manual proxy configuration-->HTTP Proxy:172.25.50.250-->Port:3128
-->OK-->Close
>再次测试:www.baidu.com
>打开百度成功!!!

--取消代理--
-->Edit-->Preferences-->Advanced-->Network-->Settings...
-->Manual proxy configuration-->No proxy
-->OK-->Close

--删除squid服务--
[root@foundation50 ~]# systemctl stop squid
[root@foundation50 ~]# yum remove squid -y
......
[root@foundation50 ~]# rm -fr /etc/squid/

在亚马逊租一台Linux服务器,装上squid,然后在本机指定代理后,就能访问国外的网站

#########squid反向代理#########
CDN加速

交叉存储

[root@web1 ~]# yum remove httpd -y
......
[root@web1 ~]# netstat -antlpe |grep :80
[root@web1 ~]# yum install squid -y
......
[root@web1 ~]# vim /etc/squid/squid.conf
-----------------------------------------------
 56 http_access allow all

 59 http_port 80 vhost vport
 60 cache_peer 172.25.50.165 parent 80 0 no-query

 62 cache_dir ufs /var/spool/squid 100 16 256
:wq
-----------------------------------------------
[root@web1 ~]# systemctl start squid
[root@web1 ~]# netstat -antlpe |grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      0          41808      2069/(squid-1)

>分别为虚拟机172.25.50.165和虚拟机172.25.50.171搭建好http服务,然后使用真机进行测试
[root@foundation50 Desktop]# firefox &
>测试:172.25.50.165
>显示:172.25.50.165
>测试:172.25.50.171
>显示:172.25.50.171

注意:同时开启三台虚拟机会有点卡,可以使用"init 3"关闭图形。需要时,再使用"init 5"打开图形

>测试:172.25.50.100
>显示:172.25.50.165

[root@web1 ~]# vim /etc/squid/squid.conf
-----------------------------------------------
/修改
 60 cache_peer 172.25.50.165 parent 80 0 no-query originserver round-robin name=web1
/插入
 61 cache_peer 172.25.50.171 parent 80 0 no-query originserver round-robin name=web2
 62 cache_peer_domain web1 web2 www.taobao.com
:wq
-----------------------------------------------
[root@web1 ~]# systemctl restart squid

[root@foundation50 Desktop]# vim /etc/hosts
-----------------------------------------------
  4 172.25.50.100   www.taobao.com
:wq
-----------------------------------------------

>真机断开外网
[root@foundation50 Desktop]# firefox &
--> Ctrl+Shift+Delete --> 把最后两项打钩 --> Clear Now(清空缓存)
>测试:172.25.50.100
>显示:172.25.50.165
>刷新
>显示:172.25.50.171
>刷新
>显示:172.25.50.165
>刷新
>显示:172.25.50.171

轮询测试成功

本文出自 “12100661” 博客,谢绝转载!

三.apache 网页重写 squid