1. 程式人生 > >RHEL7下 nginx 的詳細配置

RHEL7下 nginx 的詳細配置

nginx rhel7 配置網站 虛擬主機 負載均衡

Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。
其特點是占有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁服務器中表現較好,
中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。

紅帽7系統默認是沒有nginx這個安裝包的,所以我們添加nginx的yum

vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/rhel/7/$basearch/

gpgcheck=0
enable=1

yum clean all
yum makecache

現在就可以進行yum安裝了
yum install -y nginx

我們先來熟悉一下nginx
vim /etc/nginx/conf.d/default.conf 默認配置目錄
如圖所示:網站默認路徑是 /usr/share/nginx/html
技術分享圖片
我們來更改下網站目錄為 /home/www/tang/
技術分享圖片
mkdir -p /home/www/tang
echo "tang" > /home/www/tang/index.html #首頁內容
實驗環境記得關閉防火墻很Selinux
systemctl stop firewalld

setenforce 0
systemctl restart nginx
客戶端訪問:ok
技術分享圖片
網站配置多站點有三種方法,分別是基於IP,基於端口,跟基於域名的
首先我們先來配置基於IP的
單網卡配置多IP(此方法重啟會失效)
ifconfig ens33:0 192.168.120.74 netmask 255.255.255.0 up
ifconfig ens33:1 192.168.120.75 netmask 255.255.255.0 up
技術分享圖片

創建各自及首頁
mkdir -p /home/www/74
mkdir -p /home/www/75
echo "192.168.120.74" > /home/www/74/index.html

echo "192.168.120.75" > /home/www/75/index.html
cd /etc/nginx/conf.d/
vim 74.conf
技術分享圖片

vim 75.conf
技術分享圖片

systemctl restart nginx

客戶端測試,網頁訪問192.168.120.74跟192.168.120.75,會出現不同的首頁
技術分享圖片

技術分享圖片

基於IP的多站點配置完成了, 這裏可能有人會問,我有些網站別人需要輸入密碼才能訪問要怎麽實現。
網站加密
yum -y install httpd-tools
vim /etc/nginx/conf.d/74.conf
技術分享圖片

auth_basic "Basic Auth"; //認證命名
auth_basic_user_file "/etc/nginx/.htpasswd"; //用戶密碼認證路徑

    htpasswd -c /etc/nginx/.htpasswd tang   #生成帳號密碼(記得路徑就是圖上指定的路徑)

技術分享圖片
客戶端訪問192.168.120.74測試:(輸入密碼才可以出現內容)
技術分享圖片

接下來我們來配置基於端口的多網站,配置跟上面基本相同
mkdir -p /home/www/8888
mkdir -p /home/www/9999
echo "8888" > /home/www/8888/index.html
echo "9999" > /home/www/9999/index.html

cd /etc/nginx/conf.d/
vim 8888.conf
技術分享圖片

vim 9999.conf
技術分享圖片

客戶端測試:
技術分享圖片

技術分享圖片

基於端口也配置完成了,是不是很簡單,現在我們來配置最後一個基於域名的,需要配置dns解析服務器才能實驗,
配置dns過去我就省略了,不會的看我前面的筆記
dns解析
技術分享圖片

mkdir -p /home/www/aaa
mkdir -p /home/www/bbb
echo "aaa" > /home/www/aaa/index.html
echo "bbb" > /home/www/bbb/index.html

cd /etc/nginx/conf.d/
vim aaa.conf
技術分享圖片

vim bbb.conf
技術分享圖片

systemctl restart nginx

客戶端測試(客戶端dns需要指定到服務器IP)
技術分享圖片

技術分享圖片

好了,虛擬主機的三種方法上面都配置完成了,命令區別基本不大
現在我們來認識下nginx 的負載均衡吧
邏輯拓撲:
技術分享圖片

當用戶向nginx負載均衡請求訪問網站,nginx會將請求轉換給後天服務器

1、輪詢(默認)
每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除。
vim /etc/nginx/conf.d/default.conf
添加在配置文件的最後面
upstream tang {
server 192.168.120.76;
server 192.168.120.77;
}
location / {
proxy_pass http://tang; #名字選擇上面定義的名字
proxy_redirect default;

技術分享圖片

systemctl restart nginx
客戶端服務測試:
技術分享圖片

weight
指定輪詢幾率,weight和訪問比率成正比,用於後端服務器性能不均的 情況。
upstream tang {
server 192.168.120.76 weight=4; #weight 是權重,默認1,越大,概率越高
server 192.168.120.77 weight=6;
server 192.168.120.78 weight=5 backup; #backup 是備用服務器,服務器全部崩潰後啟用
}

location / {
proxy_pass http://tang;
proxy_redirect default;

負載均衡配置也計較簡單,這裏就不測試了,留給你們試試看吧!!!

RHEL7下 nginx 的詳細配置