Nginx




一、差異對比

Apache

Nginx





配置相對複雜


配置相對簡單

原生支持動態和靜態頁面

支持靜態頁面

模塊相對安全


高性能模塊出產迅速、社區活躍

BUG相對較少,消耗資源較多

BUG相對較多,節省資源

對加密支持較好

對反向代理支持較好

同步阻塞型應用

異步非阻塞型應用

二、Nginx 的安裝


yum-yinstallgcc*

 

yum-yinstallpcre*zlib*

 

useradd -M  -s  /sbin/nologinnginx

 

解壓軟件包  nginx

 

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

 

make

 

install

 

添加監控模塊

 

vi /usr/local/nginx/conf/nginx.conf

 

location /abc  {

 

stub_status on;

 

}

 

 

 

三、 Nginx實驗

 

1Nginx 身份驗證

 

a、基於用戶名密碼

 

vi /usr/local/nginx/conf/nginx.conf location /abc {

 

stub_status on;

 

auth_basic "Welcome to nginx!"; auth_basic_user_file /usr/local/nginx/html/a.psd;

 

}

 

htpasswd -c /usr/local/nginx/html/a.psd zhangsan htpasswd -m /usr/local/nginx/html/a.psd lisi

 

b、基於IP限制訪問

 

vi /usr/local/nginx/conf/nginx.conf location /abc {

 

stub_status on;

 

auth_basic "Welcome to nginx!"; auth_basic_user_file /usr/local/nginx/html/a.psd;

 

allow 192.168.66.250; 允許250拒絕所有 deny 192.168.66.0/24;

 

}

 

c、虛擬主機 vi /usr/local/nginx/conf/nginx.conf

 

複製 server{} 區域,不同的 server 區域則是不同的虛擬主機,同 apache 擁有基於域名端口的虛擬主機

 

dNginx的反向代理功能

 

說明:反向代理的實現過程是,當客戶端訪問請求道 nginx 服務器是,nginx充當客戶端去真正的服務端去數據,返回給client端,這個過程稱之爲反向代理

 

實驗環境說明:192.168.1.3 安裝了lamp環境,192.168.1.2 安裝了 nginx 程序,實現 nginx 完全的反向代理 lamp

spacer.gif

location / {

 

proxy_pass http://192.168.1.3:80;

 

}

 

e、負載調度的用法

 

、在server區域外創建一個 upstream 區域,此區域中編寫的內容爲負載羣

 

upstreamxdl.com {

 

ip_hash;

 

#調度算法,默認 rr 輪訓,hash常用語解決session共享的問題

 

server 192.168.1.240:80weight  1;

 

server 192.168.1.241:80weight1;

 

server192.168.1.242:80weight  1 backup;

 

#backup 表示機器處於熱備狀態,weight代表權重,權重越高代表使用越多

 

}

 

、在 / 的區域內設置反向代理

 

location / {

 

proxy_passhttp://xdl.com;

 

}

 

fHTTPS加密訪問

 

、在需要使用https加密訪問的 server{} 區域內添加一下內容開啓 SLL 加密

 

ssl


on;


ssl_certificate

server.crt;

ssl_certificate_key  server.key;

ssl_session_timeout

5m;


ssl_protocols

TLSv1;



ssl_ciphers

HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM;

ssl_prefer_server_ciphers

on;

 

、將本站點的 server.pem 以及 server.key 放入 nginx  conf/ 目錄下

 

注:在實驗環境中可以用一下命令生成測試,在生產環境中必須要在https廠商註冊使用

 

openssl genrsa -des3 -out server.key 1024#建立服務器私鑰(過程需要輸入密碼,請記住這個密碼)生成

 

RSA密鑰

 

openssl req -new -key server.key -out server.csr#需要依次輸入國家,地區,組織,email。最重要的是有

 

一個common name,可以寫你的名字或者域名。如果爲了https申請,這個必須和域名吻合,否則會引發瀏覽器警報。生成的csr文件交給CA簽名後形成服務端自己的證書

 

cp server.key server.key.org

 

openssl x509 -req -days 365 -sha256  -in server.csr -signkey server.key -out servernew.crt#命令生成v1版證書

 

cp servernew.crt /usr/local/nginx/conf/server.crt

 

cp server.key /usr/local/nginx/conf/server.key

 

 

、瀏覽器默認訪問的爲服務器的 80 端口即默認使用 http 協議訪問,而 https 使用的是 443 端口,所

 

以需要在 nginx 配置全域名跳轉功能,假設此時我們的域名是 www.xdl.com ,需要配置

 

server { listen 80;

server_namewww.xdl.com;

 

rewrite ^(.*)$ https://$host$1 permanent;

 

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章