虛擬主機部署的三種方式:html
apache能夠採用yum和二進制源碼安裝,儘管yum安裝快捷方便且能解決依賴問題,可是配置目錄零散,不適合企業的維護,故使用源碼安裝能夠指定安裝版本與指定目錄,便於維護升級nginx
參考yum源三大經常使用配置其中一種方式便可c++
yum install apr apr-devel apr-util apr-util-devel pcre* gcc gcc-c++ -y
web
wget https://mirror.bit.edu.cn/apache/httpd/httpd-2.4.43.tar.bz2 tar -xjvf httpd-2.4.43.tar.bz2 cd httpd-2.4.43/ ./configure --prefix=/usr/local/apache2/ --enable-rewrite --enable-so make && make install
setenforce 0 systemctl stop firewalld.service /usr/local/apache2/bin/apachectl start
有個告警,提示沒有打開80端口監聽shell
echo "ServerName localhost:80" >> /usr/local/apache2/conf/httpd.conf /usr/local/apache2/bin/apachectl restart
告警消失,測試正常apache
/usr/local/apache2/bin Apache # 命令目錄 /usr/local/apache2/build Apache # 構建編譯目錄 /usr/local/apache2/htdocs/ # 源碼安裝 Apache 網站發佈目錄 /usr/local/apache2/cgi-bin # 可執行的 CGI 程序存放目錄 /usr/local/apache2/include # Apache引用配置文件目錄 /usr/local/apache2/logs # Apache日誌目錄 /usr/local/apache2/man # Apache幫助文檔目錄 /usr/local/apache2/manual # Apache手冊 /usr/local/apache2/modules # Apache模塊路徑
vim /usr/local/apache2/conf/httpd.conf
vim
Include conf/extra/httpd-vhosts.conf #開啓vhost
瀏覽器
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
安全
<VirtualHost *:80> DocumentRoot "/usr/local/apache2//htdocs/xiaoxian1" ServerName www.xiaoxian1.com ServerAlias xiaoxian1 ErrorLog "logs/www.xiaoxian1.com-error_log" CustomLog "logs/www.xiaoxian1.com-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "/usr/local/apache2//htdocs/xiaoxian2" ServerName www.xiaoxian2.com ErrorLog "logs/www.xiaoxian2.com-error_log" CustomLog "logs/www.xiaoxian2.com-access_log" common </VirtualHost>
mkdir -p /usr/local/apache2//htdocs/{xiaoxian1,xiaoxian2} # 建立虛擬主機根目錄 /usr/local/apache2/bin/apachectl restart
touch /usr/local/apache2/htdocs/xiaoxian*/index.html echo "xiaoxian1" >> /usr/local/apache2/htdocs/xiaoxian1/index.html echo "xiaoxian2" >> /usr/local/apache2/htdocs/xiaoxian2/index.html # 建立虛擬主機index.html,並輸入測試文本 /usr/local/apache2/bin/apachectl restart
更改電腦的host文件性能優化
C:\Windows\System32\drivers\etc\hosts
瀏覽器測試
重要:若是目錄中沒有index.html,則會顯示全部目錄信息
這樣顯示是不安全的,只須要將vim /usr/local/apache2/conf/httpd.conf
中的
Options Indexes FollowSymLinks 改成 Options FollowSymLinks
重啓服務 /usr/local/apache2/bin/apachectl restart
顯示沒有權限,比較安全
vim /usr/local/apache2/conf/httpd.conf
<IfModule worker.c> # worker MPM引擎配置段(prefork不經常使用) ThreadLimit 200 ServerLimit 64 StartServers 8 # apache進程數 MaxClients 3000 # 每秒支持最大併發 MinSpareThreads 50 # 最小空閒進程 maxSpareThreads 100 # 最大空閒進程 ThreadsPerChild 100 # 每一個進程啓動的線程數 MaxRequestsPerChild 1000 # 每一個進程處理的最大請求數(0爲無限制) </IfModule>
添加以上性能參數選項至配置文件httpd.conf底部
參數須要根據機器的性能優化,同時得知足公式,否則會報錯
ThreadLimit >= ThreadsPerChild MaxClients <= ServerLimit * ThreadsPerChild 必須是ThreadsPerChild的倍數 MaxSpareThreads >= MinSpareThreads+ThreadsPerChild
# 如下原配置文件已存在,含義以下 DocumentRoot "/usr/local/apache2//htdocs" <Directory "/usr/local/apache2//htdocs"> Options FollowSymLinks # 禁止瀏覽目錄 AllowOverride None # 設置爲None時,目錄中的.htaccess文件不生效 Require all granted # 容許全部 </Directory>
重啓服務 /usr/local/apache2/bin/apachectl restart
/usr/local/apache2/bin/ab
是apache自帶的壓力測試工具,也可以使用yum -y install httpd-tools
安裝。ab不只能夠對apache服務器進行壓力測試,也能夠對nginx等進行測試
一些經常使用的ab參數 -c #併發數(模擬用戶數) -n #執行次數(訪問次數) -w #以html打印測試結果 -A #添加網絡認證(帳號密碼冒號隔開) -e #輸出結果到CSV格式中
/usr/local/apache2/bin/ab -c 1000 -n 10000 http://localhost/index.html
查看系統負載狀況
查看測試結果,OK