6- websever:Nginx & Apache安裝配置
來自專欄 linux社區
6- 快速上手Linux玩轉典型應用- websever:Nginx & Apache安裝配置
標題超長了。寫在文章裡面
7- websever安裝配置
Nginx & Apache
並發量。
Apache基本操作
解釋命令安裝yum install httpd啟動service httpd start停止service httpd stop
centos中它叫httpd。ubuntu中就叫Apache
虛擬主機 偽靜態
sudo install httpdsudo service httpd startps -ef|grep httpdsudo service httpd restart
此時進入瀏覽器訪問無法訪問到我們的Apache。
sudo netstat -anpl | grep http
可以看到埠運行也是正常的。
防火牆機制。關閉防火牆
sudo service firewalld stop
此時通過http://192.168.0.7/
可以訪問到我們的Apache頁面
虛擬主機
我們一個網站伺服器希望有很多不同的域名
cd /etc/httpd/lscd confvim httpd.conf
config.d 是配置文件 。config.modules.d是配置模塊的文件。
mark
監聽80埠,模塊下的任意conf文件
mark
根目錄是放在var/www/html
搜索virtual 。esc之後輸入"/virtual"回車
<VirtualHost *:80> ServerName www.mtianyan.test DocumentRoot /data/www <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None </Directory></VirtualHost>
配置我們的域名和根目錄
sudo service httpd restart
重啟httpd服務。
mkdir -p data/www
添加-p參數新建級聯目錄。
data目錄所屬用戶是在root賬號。如果對於目錄的操作許可權不夠可以使用
sudo chown -R mtianyan:mtianyan /data
chown 改變文件或目錄所有者。-R
是遞歸的方式。
此時無法訪問。我們的域名是虛構的,所以需要使用host
sudo vim /etc/hosts
C:WindowsSystem32driversetc
此時訪問仍然是Apache的頁面。
cd /etc/httpd/cd logs/
許可權禁止。
sudo su -
- 是一個環境變數切換到root用戶
報錯:
[Sat Jan 27 15:41:15.482043 2018] [authz_core:error] [pid 4847] [client 192.168.0.12:11981] AH01630: client denied by server configuration: /data, referer: http://www.mtianyan.test/sudo setenforce 0
系統關於安全的一個設置。0寬鬆模式
sudo vim /etc/selinux/config
修改為disabled寬鬆模式。
偽靜態: .html看起來像是靜態的。
/loadMoudle
mod_rewrite
mark
Nginx基本操作
解釋命令安裝yum install nginx啟動service nginx start停止service nginx stop重載service nginx reload
虛擬主機
yum install nginxyum search nginxsudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmsudo yum install -y nginx
reload是一種無縫的重載。
cd /etc/nginx sudo vim nginx.conf cd conf.d sudo vim default.conf sudo cp default.conf mtianyan.conf
新建一個我們自己的配置文件.mtianyan.conf
內容如下;
server { listen 80; server_name www.mtianyan.test; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /data/www; index index.html index.htm; }}
不能同時啟動nginx和Apache。可以看到
Redirecting to /bin/systemctl start nginx.serviceJob for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.sudo systemctl status nginx.service
執行提示我們執行的命令之後我們可以看到提示80埠已經被佔用。
一個埠只能被一個伺服器所使用。
多域名多埠
多埠
listen 80; listen 9999;
多域名
server_name www.mtianyan.test www.mtianyan2.test;
偽靜態
location/ { rewrite ^(.*).htmp$ /index.html;}
任意的以.htmp結尾的都去index.html
代表轉義。
日誌格式化
nginx.conf文件進行日誌格式化
log_format
mark
mark
自己新建的日誌格式要保存一致。
希望自己的虛擬主機的日誌存放在自己自定義位置mtianyan.conf中 server下
access_log /var/log/nginx/
反向代理和負載均衡
請求網站是代理返回過來的。我們請求nginx, nginx向另一台伺服器請求資料。
負載均衡。網站請求量比較大,兩台機器一起服務。
演示:
- 將我們的rewrite注釋掉
upstream mtianyan_hosts{ server 192.168.0.7:80 weight=5; server 192.168.0.8:80 weight=1;}server{ location /{ proxy_set_header Host blog.mtianyan.cn proxy_pass http://mtianyan_hosts; }}
輪流進行發送請求。以5比1的比例。負載均衡解決網站壓力分流。
調試技巧
看配置是否出錯。
add_header Content-Type "text/plain;charset=utf-8";return 200 "$http_host";
回顧
httpd
service 啟動 關閉 停止
虛擬主機 偽靜態 rewrite
virtual
nginx reload
多域名多埠,偽靜態。誒之格式化nginx.conf log_format
反向代理 & 負載均衡。
推薦閱讀:
※linux內核情景分析之execve的實現
※在安卓上部署伺服器 - 應用程序的配置
※Android 驅動開發應該如何入門和學習成長?
※在centos和redhat上安裝docker
※對於爹媽這些不太懂電腦的人,有哪些簡單優秀操作系統備份還原軟體可以供他們使用?