Nginx
Nginx是個web服務器,常用作靜態檔案服務器,反向代理服務器,郵件代理服務器,負載均衡服務器
Nginx安裝
1. 安裝淘寶nginx,編譯安裝,先解決模塊依賴
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
2. 獲取淘寶nginx的源代碼
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
3. 解壓縮源代碼包
tar -zxvf tengine-2.3.2.tar.gz
4. 進入源代碼目錄開始編譯三部曲
①指定安裝路徑
./configure --prefix=/opt/tngx
②編譯且安裝
make && make install
③安裝完成之后,進入Nginx的目錄
[root@localhost tngx]#pwd
/opt/tngx
[root@localhost tngx]#ls
conf html logs sbin
-
- conf 存放組態檔
- html 存放前端頁面
- logs nginx的運行日志
- sbin nginx的可執行命令目錄
進入sbin目錄
[root@localhost tngx]#cd sbin
-
- ./nginx 啟動Nginx
- ./nginx -s stop 停止Nginx
- ./nginx -t 檢查nginx.conf的語法是否正確
- ./nginx -s reload 不重啟Nginx,重新加載Nginx配置
Nginx配置
組態檔為conf目錄下的nginx.conf
Nginx虛擬主機
http {
#nginx支持多虛擬主機,只需要寫入多個server關鍵字即可
#虛擬主機1
server {
#基于埠的虛擬主機區分
listen 80;
#基于域名的虛擬主機區分
server_name www.asdf.com;
#charset koi8-r;
#access_log logs/host.access.log main;
#access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
#這里是nginx的url匹配,如同django的url一樣
#當請求 http://192.168.182.130:80/abc.jpg 這樣的url時,就進入如下location匹配
#這個是最低級的匹配,所有請求都會走到這里
location / {
#root關鍵字定義虛擬主機的根目錄,這里是可以修改的
root /opt/abc/;
#index引數定義首頁檔案的名字
index index.html;
}
}
?
#虛擬主機2
server {
#基于埠的虛擬主機區分
listen 81;
#基于域名的虛擬主機區分
server_name www.qwer.com;
#charset koi8-r;
#access_log logs/host.access.log main;
#access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
#這里是nginx的url匹配,如同django的url一樣
#當請求 http://192.168.182.130:81/xyz.jpg 這樣的url時,就進入如下location匹配
#這個是最低級的匹配,所有請求都會走到這里
location / {
#root關鍵字定義虛擬主機的根目錄, 這里是可以修改的
root /opt/xyz/;
#index引數定義首頁檔案的名字
index index.html;
}
}
}
Nginx錯誤頁面404優化
server {
listen 80;
server_name www.asdf.com;
#通過error_page引數定義即可
#404.html檔案的相對路徑為root定義的目錄
error_page 404 /404.html;
location / {
root /opt/abc/;
index index.html;
}
}
Nginx反向代理
-
環境準備
-
機器1 192.168.182.130,代理服務器
-
機器2 192.168.182.131,資源服務器
-
-
反向代理服務器配置如下
在代理服務器的組態檔中,找到server{}虛擬主機,在location內設定proxy_pass引數
server {
listen 80;
server_name www.asdf.com;
#charset koi8-r;
#access_log logs/host.access.log main;
#access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
location / {
#實作反向代理的功能引數
#實作反向代理的功能引數
#實作反向代理的功能引數
proxy_pass http://192.168.182.131;
}
}
Nginx負載均衡
-
環境準備
-
1臺負載均衡服務器
-
192.168.182.130 負載均衡服務器
-
-
2臺資源服務器
-
192.168.182.131 資源服務器1
-
192.168.182.132 資源服務器2
-
-
-
在負載均衡服務器組態檔中,定義upstream負載均衡池
#默認輪詢方式
upstream test {
server 192.168.182.131;
server 192.168.182.132;
}
?
#權重方式
upstream test {
server 192.168.182.131 weight=4;
server 192.168.182.132 weight=1;
}
?
#ip哈希方式,根據用戶的來源ip計算出哈希值,永遠只指派給一個服務器去決議
#ip哈希不得與權重共同使用
upstream test {
server 192.168.182.131;
server 192.168.182.132;
ip_hash;
}
-
server{}虛擬主機在location內設定proxy_pass引數,將請求轉發給負載均衡池
server {
listen 80;
server_name www.asdf.com;
#charset koi8-r;
#access_log logs/host.access.log main;
#access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
location / {
#root /opt/abc/;
#index index.html;
#請求轉發給負載均衡池
#請求轉發給負載均衡池
#請求轉發給負載均衡池
proxy_pass http://test;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/119028.html
標籤:Linux
上一篇:問一個初學的問題,照著抄了一份shell腳本,bash出了問題,一直找不到問題,求教
下一篇:Oh My Zsh 快捷方式記錄
