1. Apacheは何ですか
(1)世界で最も人気のあるWebサーバーのいずれかを使用して、
(2)は、ほとんどのコンピュータのオペレーティングシステム上で実行することができます。
(3)特徴:シンプル、高速で、安定した、プロキシサーバーを実行します。
(4)効果:ウェブにアクセスするときは、http定義://プロトコルモード(国内および他の企業といくつかの独立したプラットフォーム:Jingdongは(JFE);百度(nginxの));
[注]カールすることができます-あなたは、Iドメインのいくつかの種類のドメインネームサーバを表示することができます
2、Apacheの基本的な情報
ユーザー:アパッチ
サービス名: httpdの
プロフィール:。ある/etc/httpd/conf/httpd.conf(メイン設定ファイル);は/ etc / httpdの/ conf.d / * CONF( サブ設定ディレクトリ)
ログ:は/ etc / httpdの/ログ
公開されたデフォルトのディレクトリ: / var / www / htmlと設定
ファイルを公開デフォルト: index.htmlを
デフォルトポート: 80(HTTP); 443(HTTPS)
3、Apacheがインストールされて有効になっています
3.1インストールパッケージ:httpd.x86_64
3.2 Apacheは有効:HTTPDを起動systemctl
【注意】ファイアウォールがHTTPサービスである場合は、あなたはまだアクセスできない、開いていません。
ファイアウォールの情報を見る:ファイアウォール-CMD --list-すべてを
サービスを開くためにビュー:ファイアウォール-CMD --get-サービス
永久にオープンサービスのhttp:ファイアウォール-CMD --permanent --add-サービス= htttp(HTTPS)
ファイアウォールの設定を更新し、設定を有効にする:ファイアウォール-CMD --reload
4は、Apacheの基本的な構成
設定オプション | ある/etc/httpd/conf/httpd.conf:設定ファイルを変更します。 | 注意事項 |
ポートが変更され | 8080を聞きます | 1.本パラメータの変更は、設定ファイルを変更する必要があります このポートの開始時に必要な2 selinuxを、ファイアウォールのポートが許可されています ファイアウォール-CMD --permanent --add-ポート= 8080 / TCP semanageポート-l | grepのHTTPポートsemanage -a -t http_port_t -p TCP 8080 3.変更が完了した後にhttpdサービスを再起動する必要があります |
デフォルトのディレクトリを変更する公開 | DocumentRoot "/ WWW / HTML" <ディレクトリ "/ www /のhtmlの"> すべての付与を要求します </ディレクトリ> |
1.テストリリースは、以下のように設定することができ、およそセキュリティコンテキストsselinuxsセットので、成功しないことがあります。 semanange fcontext -a -tのhttpd_sys_content_t '/www(/.*)?' restoreconコマンド-RvvF / WWW / 2.完了後にサービスを再起動する必要性を修正 |
デフォルトのファイルを変更公開 | DirectoryIndex index.htmlを | 1.デフォルトでは、ディレクトリのindex.htmlが存在、index.htmlのページのコンテンツへのアクセスを公開 2.デフォルトでは、ディレクトリのindex.htmlが存在しないApacheのテストページを公開 3.複数のデフォルトのファイルは、デフォルトのディレクトリのアクセスに存在する場合、ファイルの更新順序を行うことができ、それは順序に従ってアクセスされますが、前者はターンアクセス背中には、しません |
[注] 1.ビューHTTPサービスの現在のポート番号:netstatの-antulpe | grepのHTTP
HTML言語として2のindex.htmlファイルの内容、読者は自己構成を学ぶことに興味を持っている場合。
5、Apacheのアクセス制御
アクセス制御条件 | ある/etc/httpd/conf/httpd.conf:設定ファイルを変更します。 | 注意事項 |
IPベースのクライアントアクセス | ホワイトリスト: <ディレクトリ "/ var / www / htmlと設定/ westos"> 注文拒否、許可 192.168.0.10から許可 すべてから拒否 </ディレクトリ> |
クライアントのIPホワイトリストやブラックリストに調整するアクセス順序の順番に従って1。 2.ここだけIPアドの形式で、ファイルが配信のため使用できません。 |
ブラックリスト: <ディレクトリ "/ var / www / htmlと設定/ westos"> 注文を許可、拒否 すべてから許可 192.168.0.10から拒否 </ディレクトリ> |
||
ユーザ認証アクセスに基づいて、 | ディレクトリの設定: <ディレクトリ "/ var / www / htmlと設定/ westos"> AuthUserFileはは/ etc / httpdの/ htpasswdfile AuthName "Please input your name and password" AuthType basic Require user admin </Directory> |
Require 后面所跟的参数可以限制用户的访问权限; valid-user 允许所有用户通过认证 user username 允许对应的用户名可访问 |
生成认证文件: htpasswd -cm /etc/httpd/htpasswdfile admin |
若/etc/httpd/htpasswdfile存在,则添加用户时不要加-c参数否则会覆盖源文件内容 |
【注】在访问过程中,由于浏览器存在缓存,可能会影响实验想过,故在每次验证前,建议清楚浏览器的缓存。
6、Apache的虚拟主机服务
为了使不同的网页信息,在同一站点下,故可使用虚拟的主机服务,在同一站点下,给不同网页分配不同的配置也页,从而达到目的。
6.1 为了效果明显我们建立以下素材:
mkdir -p /var/www/test.com/{news,wenku}
echo "wenku's page" > /var/www/test.com/wenku/index.html
echo "news's page" > /var/www/test.com/news/index.html
echo "default's page" > /var/www/html/index.html
6.2 虚拟站点的配置设置
(1)在/etc/httpd/conf.d/自配置目录下,建立虚拟站点配置服务文件: vim Virtualhost
(2)编写Virtualhost文件内容:
文件设置 | 配置结果 |
<Virtualhost _default_:80> Documentroot "/var/www/html" Customlog logs/default.log combined </Virtualhost> |
配置默认登录界面
|
<Virtualhost *:80> Servername wenku.test.com Documentroot "/var/www/test.com/wenku" Customlog logs/wenku.logs combinded </Virtualhost> |
配置域名访问为wenku.test.com的页面 |
<VirtualHost *:80> ServerName news.test.com DocumentRoot "/var/www/test.com/news" CustomLog logs/news.log combined </VirtualHost> |
配置域名访问为news.test.com的页面 |
【注】日志的存放路径在上述配置文件中写的是相对路径,因为路径在主配置文件中已经写过。
(3)内容测试:在客户主机中输入所要访问的IP,若需要通过域名访问,可在/etc/hosts的本地解析中添加解析:
【例】192.168.1.10 www.test.com wenku.test.ocm news.test.com
7、Apache支持的语言
默认 | HTML |
常用 | php,cgi |
HTML:可直接使用
PHP:在默认的访问页配置目录中书写文件,php语言的文件需要以.php结尾;语言的支持需要安装php的软件包。
【例】vim /var/httpd/index.html(php的测试页)
<?php
phpinfo();
?>
CGI:同样在访问的配置页面中可以填写cgi的测试页;cgi测试是一个脚本语言,所以需要给与测试文件执行的权限,且需要在子配置目录中写配置文件:
测试页(/var/www/html/cgidir)内容:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
配置文件(/etc/httpd/conf.d/vhost.conf)内容:
<Directory "/var/www/html/cgidir">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
8、Apache的加密访问
rhel7中,可以通过genkey,来直接生成证书;
【例】genkey IP(站点)
安装软件:mod_ssl.x86_64,crypto-utils
生成之后,可同伙https://进行访问,并查看证书。
rhel8中,需要通过openssl服务生成证书。
【例】采用工具openssl产生密钥,并对证书进行签密
(1)安装mod_ssl软件包;
(2)产生密钥:openssl genrsa -out /etc/pki/tls/private/www.test.com.key 2048(genrsa:以rsa的方式加密,-out:输出密钥到文件***,2048:加密长度);
(3)生成证书签密文件:openssl req -new -key /etc/pki/tls/private/www.test.com.key -out /etc/pki/tls/certs/www.test.com.csr(根据新的密产生证书);
(4)证书生成:openssl x509 -req -days 365 -in /etc/pki/tls/certs/www.test.com.csr -signkey /etc/pki/tls/private/www.test.com.key -out /etc/pki/tls/certs/www.test.com.crt(-req:证书请求,-days:加密有效天数;-in:加载密签名称,-signkey:加密的密钥)
(5)修改ssl.conf(对所有网页均生效):
SSLCertificateFile /etc/pki/tls/certs/www.test.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.test.com.key
(6)在conf.d子配置目录下编写virtualhost.conf虚拟主机配置(单独设置,对某个网页生效):
<VirtualHost *:443>
ServerName login.test.com
DocumentRoot "/www/test.com/login"
CustomLog logs/login.log combined
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/www.test.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.test.com.key
</VirtualHost>
【注】因为加密是443端口,所以需要设定端口为443;此时在访问特定页面时需要手动添加https的服务;
(7)将手动添加转化为自动转化
<VirtualHost *:80>
ServerName login.test.com
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1
</VirtualHost>
【注】^(/.*)$ :表示客户主机地址栏中输入的内容;%{HTTP_HOST}:客户主机;$1 :RewriteRule后面跟的第一串字符的值;
(8)重启服务即可在浏览器中进行验证,查看证书是否为我们自己产生的证书。
9、Squid+Apache
(1)Squid正向代理(代理主机<翻墙>)
实验环境:设定单网卡主机不可上网;双网卡主机可以上网;
步骤:
<1> 在双网卡主机中安装squid服务;
<2>编辑squid的配置文件(/etc/squid/squid.conf):http_access allow all;cache_dir ufs /var/spoll/squid 100 16 256;
<3>启动squide服务,设定火墙允许squid端口工作(firewall-cmd --add-port=3218/tcp)
<4>在当网卡主机中的浏览器中,选择NetWork Proxy;输入双网卡中可连接的主机IP和端口,即可在浏览器中上网。
(2)Squid反向代理(缓存网页)
实验环境:在192.168.1.10 中安装Apace服务(交互界面);在192.168.1.200 中安装Squid (负责上网) ;
步骤:
<1> 配置squid的配置目录(/etc/squid/squid.conf):http_port 80 vhost vport (主机80端口支持虚拟主机和虚拟端口);cache_peer 192.168.1.100 parent 80 0 proxy-only (当访问192.168.1.100的80端口时,会从192.168.1.10的80端口缓存数据)
<2> 重启squid服务:ystemctl restart squid;
<3> 在网页中访问192.168.1.100即可看到192.168.1.10的配置也页内容。
上述为Linux中Apache服务的基本介绍,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用!