Apache 1. 基本操作 | 解釋 | 命令 | | | | | 安裝 | yum install httpd | | 啟動 | service httpd start | | 停止 | service httpd stop | 2. 啟動完成後 查看進程是否存在: 此時在本機Win地址欄輸入 ...
Apache
- 基本操作
解釋 | 命令 |
---|---|
安裝 | yum install httpd |
啟動 | service httpd start |
停止 | service httpd stop |
啟動完成後
- 查看進程是否存在:
ps -ef | grep httpd
- 此時在本機Win地址欄輸入 192.168.2.1(也就是虛擬機ip),你會發現訪問是失敗
- 然後查看埠是否監聽:
sudo netstat -anpl | grep 'http'
,此時埠也在監聽,那為什麼訪問不成功呢? - 此時關閉防火牆,
sudo service firewalld stop
,然後再從新輸入ip地址,你就會看見如圖所示:
- 查看進程是否存在:
虛擬主機配置
進入:
cd /etc/httpd/
,然後到cd conf
目錄,打開vim httpd.conf
文件,這是一些配置文件,此時若許可權不夠記得提權在這個配置文件中
/virtual
這個到關鍵字,配置一個虛擬主機,就在這個下麵寫<VirtualHost *:80> ServerName www.imooc.test DocumentRoot /data/www <Directory "/data/www"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>
- 上面的DocumentRoot就是文件的根目錄,因為不存在,所以創建這個目錄
sudo mkdir -p /data/www
,到這個www文件夾下,創建一個index.html文件,隨便寫一些內容,保存退出,重啟伺服器,此時在本機Win地址欄出入ServerName,此時你會發現訪問不成功,為什麼呢,因為這個功能變數名稱是虛擬的,要進行配置, - 這Win中到這個目錄下
c:\Windows\System32\Drivers\etc
,找host文件,在最後添加就可以了,例如192.168.2.1 www.imooc.test
,其中這個ip是虛擬機的ip,這個地方有個坑,詳情看這個https://jingyan.baidu.com/article/624e7459b194f134e8ba5a8e.html
若訪問不成功,執行這個命令
sudo setenforce 0
,這個命令主要設置寬鬆模式
- 若想配置多個虛擬主機,就把上面的內容複製多次就可以了,要註意路徑喲
在這個 /etc/httpd目錄下有一個logs目錄,記錄的日誌,進入到這個目錄中,有兩個文件,access_log、error_log,分別記錄這訪問和異常的日誌,打開
tail -f error_log
在這裡你會看到一些錯誤的信息記錄
偽靜態操作
到
cd /etc/httpd/modules
會看到所有的模塊的類到
cd /etc/httpd/conf.modules.d
,這個是模塊的配置然後進入
cd /etc/httpd/conf
,打開vim httpd.conf
文件,找到/LoadModule這個關鍵字,在這個關鍵字下麵添加
LoadModule rewrite_module modules/mod_rewrite.so
,此時在配置虛擬主機的代碼中添加,重啟一下伺服器,也就是說,只要訪問地址尾碼名是.htmp,那麼就轉到index.html
<VirtualHost *:80> ServerName www.imooc.test DocumentRoot /data/www <Directory "/data/www"> Options Indexes FollowSymLinks AllowOverride None Require all granted # 添加一下代碼 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*).htmp$ index.html </IfModule> </Directory> </VirtualHost>
Nginx
- 基本操作
解釋 | 命令 |
---|---|
安裝 | yum install nginx |
啟動 | service nginx start |
停止 | service nginx stop |
重載 | service nginx reload |
要註意的是安裝的時候需要添加一個CentOS7 Nginx yum資源庫
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
,然後再安裝yum install nginx
啟動成功後
- 查看進程是否存在:
ps -ef | grep nginx
- 此時在本機Win地址欄輸入 192.168.2.1(也就是虛擬機ip),就會看到歡迎界面
- 查看進程是否存在:
配置虛擬主機
- 進入:
cd /etc/nginx/
,打開vim nginx.conf
文件,這是一些配置文件, - 然後到:
cd /etc/nginx/conf.d/
,會有一個預設文件default.conf,在這裡可以看到nginx預設的根目錄,打開vim /usr/share/nginx/html/index.html
,這個就是nginx的歡迎界面 - 直接在這個目錄下把預設文件default.conf複製一份,例如imooc.conf,按照這個寫就可以了,然後重載
server{ listen 80; server_name www.imooc.test; root /data/www; index index.html index.htm; }
- 若想配置多個虛擬主機,重覆上面的操作就可以了,再複製一份,要註意路徑,
- 若一個虛擬主機想多埠訪問直接多寫一個listen,或者多功能變數名稱,就在這個功能變數名稱後面多寫一個就可以了,要註意格式,因為這裡的功能變數名稱是虛擬的,所以還的在host里添加,和上面一樣
server{ listen 80; listen 9999; server_name www.imooc.test www.imooc2.test; root /data/www; index index.html index.htm; }
- 進入:
偽靜態
- 還是在配置虛擬主機的文件中,此時只要尾碼名.htmp的都會訪問index.html頁面
server{ listen 80; server_name www.imooc.test; root /data/www; index index.html index.htm; location / { rewrite ^(.*)\.htmp$ /index.html; } }
日誌的格式化
- cd /etc/nginx,打開nginx.conf文件,在log_format後面的,會看到一些格式以及存放的路徑,/var/log/nginx/access.log,查看一下:
tail -f /var/log/nginx/access.log
- 自定義格式,只需要:
也可以在虛擬主機中指定日誌的位置,這樣方便管理,記得從重載伺服器
server{ listen 80; server_name www.imooc.test; root /data/www; index index.html index.htm; # 指定日誌關鍵字 存放的路徑 日誌格式的名字,就是上面自定義的 access_log /var/log/nginx/access_imooc.log imooc; location / { rewrite ^(.*)\.htmp$ /index.html } }
- cd /etc/nginx,打開nginx.conf文件,在log_format後面的,會看到一些格式以及存放的路徑,/var/log/nginx/access.log,查看一下:
反向代理
進入到
cd /etc/nginx/conf.d
,vim imooc.conf
文件,如# 這個訪問的實際ip地址,方便下麵引用 upstream imooc_hosts { server 118.89.106.129:80; } server { listen 80; server_name www.imooc.test; root /data/nginx; index index.html index.htm; location / { # 實際ip地址對應的Host proxy_set_header Host www.54php.cn; # 這個就是引用上面的方便管理 proxy_pass http://imooc_hosts; } }
重載伺服器,訪問
www.imooc.test
這個網址,實際上就會訪問到www.54php.cn
,此時前者就是作為一個代理
負載均衡
若這個時候,再imooc_hosts里添加一條網址,那麼在第一次訪問
www.imooc.test
這個網址,就到到第一條對應的網址,第二訪問,就回到第二條對應的網址,第三次還是第一條對應的網址,......若不想這樣迴圈,想讓一個伺服器訪問的次數多一點,那麼,在後面添加一個關鍵字就可以了,如下,這樣第一個網址被訪問的次數就是第二個網址的五倍
server 118.89.106.129:80 weight=5; server 101.132.110.127:80 weight=1;
調試功能
- 一般出錯的時候進行,還是在虛擬主機配置文件中,添加下麵的內容,重載伺服器,此時在頁面上就會顯示請求的功能變數名稱是什麼和客戶端地址
server { listen 80; # 添加下麵的內容 add_header Content-Type "text/plain;charset=utf-8"; return 200 "$http_host $remote_addr"; server_name www.imooc.test; root /data/nginx; index index.html index.htm; }