Apache的基本操作
安裝
yum install httpd
啟動
service httpd start
在瀏覽器中輸入以下Ip 發現無法訪問
http://192.168.1.109/
輸入以下命令進行網絡統計
netstat -anpl | grep 'http'
發現此時80端口和httpd都已經啟動了,這時候只需要把防火牆關閉即可
service firewalld stop
再次刷新頁面,啟動成功
停止
service httpd stop
Apache的虛擬主機配置及偽靜態操作
虛擬主機一般在配置多個域名的時候才會使用,比如一個服務器上部署多個網站,保證每個域名訪問的內容和源代碼是不一樣的。
進入httpd目錄
cd /etc/httpd/ ls
打開conf/httpd.conf
cd conf vi httpd.conf
- DocumentRoot "/var/www/html" 表示文件根目錄的路徑(代碼目錄都是放在這里的),配置虛擬主機的時候我們可以自己指定代碼目錄
- port 80 指的是監聽的端口是80
配置虛擬主機
<VirtualHost *:80> ServerName www.zhangbiao.com DocumentRoot /data/www </VirtualHost>
創建/data/www 文件 ,因為把跟文件的目錄指定到了/data/www
sudo mkdir -p /data/www
在data/www 目錄下創建index.html 文件
cd /data/www vi index.html
輸入以下內容
<h1> hello world </h1>
重啟httpd服務
service httpd restart
配置 hosts linux hosts 路徑 /etc/hosts windos hosts路徑 C:\Windows\System32\drivers\etc
192.168.1.109 www.zhangbiao.com
在瀏覽器輸入
www.zhangbiao.com
發現頁面顯示的並不是我們輸入的 hello world
查看log 日志
cd /etc/httpd/logs/ ls -al
查看訪問日志
tail -f access_log
查看錯誤日志
tail -f error_log
在瀏覽器訪問
www.zhangbiao.com
錯誤日志中出現以下提示信息
vi /etc/httpd/conf/httpd.conf
在上面配置虛擬主機的代碼段添加以下信息
<VirtualHost *:80> ServerName www.zhangbiao.com DocumentRoot /data/www <Directory "/data/www"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>
再次刷新頁面
需要注意的是如果不能訪問請進行以下檢查
DocumentRoot 和 Directory 中的字符串必須相等
data , www 必須是可執行的權限 755
selinux的問題 ,你可以把你的目錄進行一下selinux權限設置
sudo setenforce 0
這條命令只是臨時的,如果想要永久有效可以修改其配置文件
vi /etc/selinux/config
把 SELINUX=disabled
配置多個虛擬主機
只需要照着上面配置一個虛擬主機進行以下配置即可,在/etc/httpd/conf/httpd.cof
<VirtualHost *:80> ServerName www.zhangbiao.com DocumentRoot /data/www <Directory "/data/www"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost> <VirtualHost *:80> ServerName www.zhangbiao1.com DocumentRoot /data/www1 <Directory "/data/www1"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>
在創建 /data/www1目錄再起www1下創建index.html即可
Apach偽靜態
偽靜態是基於 rewrite 實現的
在 /etc/httpd/conf/httpd.cof 添加以下配置
LoadModule rewrite_module modules/rewrite.so
<VirtualHost *:80> ServerName www.zhangbiao.com 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>
重啟服務
service httpd restart
訪問已 htmp結尾的都會轉到index.html文件
http://www.zhangbiao.com/1.htmp
Nginx的基本操作
安裝
yum install nginx

需要安裝 Nginx 源
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安裝該rpm后,我們就能在/etc/yum.repos.d/ 目錄中看到一個名為nginx.repo 的文件
再次安裝
yum install nginx
啟動
service nginx start
訪問
http://192.168.1.109/
停止
service nginx stop
重載,一般都有reload無負載的遷移,因為要用restart重新啟動的時候,需要關閉程序在程序啟動,需要一定的時間
service nginx reload
nginx 的配置文件存放在 /etc/nginx 下面
nginx 配置虛擬主機
打開 配置文件 nginx,conf
vi /etc/nginx/nginx.conf
可以看到會默認加載/etc/nginx/conf.d/ 下面已conf結尾的文件
進入 /etc/nginx/conf.d/ 下面
cd /etc/nginx/conf.d/ ls
查看 default.conf 文件
cat default.conf
查看 /usr/share/nginx/html 下的文件
ll /usr/share/nginx/html
把default.conf 復制一份到zhang.conf
cp default.conf zhang.conf
內容如下
server { listen 80; server_name www.zhangbiao.com; root /data/www; index index.html index.htm; }
訪問
http://www.zhangbiao.com/
nginx配置多個端口和域名訪問
在zhangbiao.conf 中配置多監聽一個端口和servername如下
server { listen 80; listen 9999; server_name www.zhangbiao.com www.zhangtao.com; root /data/www; index index.html index.htm; }
配置hosts
重啟nginx
service nginx restart
訪問新增的端口
http://www.zhangbiao.com:9999
訪問新填的域名
http://www.zhangtao.com/
Nginx 偽靜態的實現
修改zhang.conf 增加location配置
server { listen 80; listen 9999; server_name www.zhangbiao.com www.zhangtao.com; root /data/www; index index.html index.htm; location / { rewrite ^(.*)\.htmp$ /index.html; } }
重啟Nginx
service nginx restart
訪問
http://www.zhangtao.com/1.htmp
Nginx 日志格式化
打開 /etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
添加自定義的log_format 和修改access_log 關鍵字
log_format zhang '$remote_addr - "$http_user_agent"'; access_log /var/log/nginx/access.log zhang;
重寫加載nginx
service nginx reload
打開日志文件存儲的路徑
tail -f /var/log/nginx/access.log
訪問
http://www.zhangbiao.com/
可以看到日志信息如下
我們可以把不同的虛擬主機存儲各自的 log 文件 ,在 /etc/nginx/conf.d/zhang.conf ,添加以下日志配置
access_log /var/log/nginx/access_zhang.log zhang;
重啟 Nginx 服務
service nginx reload
訪問
http://www.zhangbiao.com/
這時在 /var/log/nginx 下多了 access_zhang.log 文件
更多的nginx log_formt 配置可以百度檢索
nginx log_formt
Nginx 反向代理 和 負載均衡
反向代理
訪問 www.zhangbiao.com 進行反向代理的我的博客頁面
進入 /etc/nginx/conf.d 目錄
編輯 zhang.conf
upstream imooc_hosts{ server 118.89.106.129:80; } server { listen 80; listen 9999; server_name www.zhangbiao.com www.zhangtao.com; root /data/www; index index.html index.htm; access_log /var/log/nginx/access_zhang.log zhang; location / { #rewrite ^(.*)\.htmp$ /index.html; proxy_set_header Host www.54php.cn; proxy_pass http://118.89.106.129; } }
重啟
service nginx reload
訪問
http://www.zhangbiao.com/
負載均衡
主要作用是減少網站的壓力,進行分流
訪問同一個url 第一次是server1 返回的結果,第二次是server2返回的結果
進入 /etc/nginx/conf.d 目錄
編輯 zhang.conf 加入以下配置
upstream zhang_hosts{ server 118.89.106.129:80; server 192.168.1.109; } server { listen 80; listen 9999; server_name www.zhangbiao.com www.zhangtao.com; root /data/www; index index.html index.htm; access_log /var/log/nginx/access_zhang.log zhang; location / { #rewrite ^(.*)\.htmp$ /index.html; proxy_set_header Host www.54php.cn; proxy_pass http://zhang_hosts; } }
擴展 配置weight 權重,訪問5次server1 才切換到server2
upstream zhang_hosts{ server 118.89.106.129:80 weight=5; server 192.168.1.109 weight=1; }
重啟
service nginx reload
訪問
www.zhangbiao.com
再次刷新
Nginx 調試
有時我們對Nginx 配置出錯的時候,我們可以逐行的進行調試找到錯誤出現的位置
Nginx 可以通過 return 關鍵字 返回請求的域名這個可以自己設置 ,返回成功即以上的代碼沒問題
在 /etc/nginx/conf.d/zhang.conf
添加以下代碼
add_header Content-Type "text/plain;charset=utf-8"; return 200 "$http_host";
訪問
http://www.zhangbiao.com/
返回
訪問
http://www.zhangtao.com/
反向代理轉向不同的機器,nginx 報 502 的錯誤
可以嘗試輸入以下命令
setsebool -P httpd_can_network_connect 1