http-2.4
阿新 • • 發佈:2018-02-23
org install iconv make reverse rri for 啟用 init.d
http-2.4
1)新特性 (1)MPM 支持運行為DSO 機制;以模塊形式按需加載 (2)event MPM 生產環境可用 (3)異步讀寫機制 (4)支持每模塊及每目錄的單獨日誌級別定義 (5)每請求相關的專用配置 (6)增強版的表達式分析式 (7)毫秒級持久連接時長定義 (8)基於FQDN 的虛擬主機不需要NameVirutalHost 指令 (9)新指令,AllowOverrideList (10)支持用戶自定義變量 (11)更低的內存消耗 2)修改了一些配置機制 不再支持使用Order, Deny, Allow 來做基於IP 的訪問控制 3)新模塊 (1) mod_proxy_fcgi FastCGI Protocol backend for mod_proxy (2) mod_remoteip Replaces the apparent client remote IP address and hostname for the request with the IP address list presented by a proxies or a load balancer via the request headers. (3) mod_ratelimit Provides Bandwidth Rate Limiting for Clients 4)centos7 httpd程序環境 1)CentOS 7 :httpd-2.4 2)安裝方法:rpm ,編譯安裝 3)Rpm 安裝的程序環境: 配置文件: /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf 模塊相關的配置文件: /etc/httpd/conf.modules.d/*.conf systemd unit file /usr/lib/systemd/system/httpd.service 主程序文件: /usr/sbin/httpd httpd-2.4 支持MPM 日誌文件: /var/log/httpd access_log :訪問日誌 error_log :錯誤日誌 站點文檔: /var/www/html 模塊文件路徑: /usr/lib64/httpd/modules 服務控制: systemctl {enable|disable} httpd.service systemctl {start|stop|restart|status} httpd.service 5)配置 配置應用 : (1)切換使用的MPM Centos7: /etc/httpd/conf.modules.d/00-mpm.conf 啟用要啟用的MPM相關的LoadModule 指令即可 centos6 編譯安裝: vim /etc/httpd24/httpd.conf Include /etc/httpd24/extra/httpd-mpm.conf LoadModule mpm_event_module modules/mod_mpm_event.so (2)主目錄: DocumentRoot /path (3)基於IP的訪問控制: 無明確授權的目錄,默認拒絕 允許所有主機訪問:Require all granted 拒絕所有主機訪問:Require all denied 控制特定的IP訪問: Require ip IPADDR:授權指定來源的IP訪問 Require not ip IPADDR:拒絕特定的IP訪問 控制特定的主機訪問: Require host HOSTNAME:授權特定主機訪問 Require not host HOSTNAME:拒絕特定主機訪問 HOSTNAME: FQDN:特定主機 domin.tld:指定域名下的所有主機 不能有失敗,至少有一個成功匹配 <RequireAll> Require all granted Require not ip 172.16.100.2 拒絕特定IP </RequireAll> 多個語句有一個成功,即成功 <RequireAny> …… </RequireAny> (4)虛擬主機 基於FQDN 的虛擬主機也不再需要NameVirutalHost 指令 <VirtualHost *:80> ServerName www.b.net DocumentRoot "/apps/b.net/htdocs" <Directory "/apps/b.net/htdocs"> Options None AllowOverride None ##Apache是否允許另一配置文件覆蓋現有配置文件。 Require all granted </Directory> </VirtualHost> 註意:任意目錄下的頁面只有顯式授權才能被訪問 (5) ssl: 安裝mod_ssl,和httpd-2.2 相同配置 (6) KeepAlive on KeepAliveTimeout #ms MaxKeepAliveRequests 100 毫秒級持久連接時長定義 (7)cento7上實現虛擬主機 vim /etc/httpd/conf.d/vhosts.conf <virtualhost *:80 > servername www.a.com documentroot "/app/a.com/" ProxyPass "/" "http://www.a.com:8080/" ##請求轉發 ProxyPassReverse "/" "http://www.a.com:8080/" ##配置總是和ProxyPass 一致,它的作用在於反向代理,如果響應中有302重定向,ProxyPassReverse就派上用場。 <directory /app/a.com> Require all granted </directory> </virtualhost> listen 8080 <virtualhost *:8080 > servername www.b.com documentroot "/app/b.com/" <directory /app/b.com> Require all granted </directory> </virtualhost> <virtualhost *:80 > servername www.c.com <directory /app/c.com> Require all granted </directory> documentroot "/app/c.com/" </virtualhost> 在centos6編譯安裝httpd-2.4 安裝httpd-2.4 依賴於apr-1.4+, apr-util-1.4+, [apr-iconv] apr:apache portable runtime ,解決跨平臺實現 CentOS 6 :默認:apr-1.3.9, apr-util-1.3.9 安裝前準備開發包: 開發環境包組: Development Tools,Server 開發程序包:pcre-devel ,openssl-devel 下載源代碼並解壓縮: http://www.apache.org/index.html#projects-list apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.27.tar.bz2 (1) 安裝apr-1.4+ ./configure --prefix=/usr/local/apr make && make install (2) 安裝apr-util-1.4+ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install (3) 編譯安裝httpd-2.4 ./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork make && make install 或者下面方法 1》mv apr-1.5.2/ httpd-2.4.27/srclib/apr 2》mv apr-util-1.5.4/ httpd-2.4.27/srclib/apr-util 3》cd httpd-2.4.27/ 4》./configure --prefix=/usr/local/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork 5》Make && make install 6》Httpd 編譯過程:/usr/local/apache24/build/config.nice 7》自帶的服務控制腳本:/usr/local/httpd24/bin/apachectl 8》vim /etc/profile.d/httpd24.sh export PATH=/app/http24/bin:$PATH 9》vim /etc/man.config MANPATH /usr/local/apache24/man 10》自定義啟動腳本( 參考httpd-2.2 的服務腳本) cp /etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd24 vim /etc/rc.d/init.d/httpd24 apachectl=/usr/local/httpd24/bin/apachectl httpd=${HTTPD-/usr/local/httpd24/bin/httpd} pidfile=${PIDFILE-/usr/local/httpd24/logs/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd24} chkconfig –add httpd24 ;chkconfig –list httpd24
http-2.4