一、Web服務器對比
Unix和Linux平臺下
--Apache、Nginx、Tengine、Lighttpd
--Tomcat、IBM WebSphere、Jboss
Windows平臺下
--微軟公司的IIS(Internet Information Server)
二、Nginx(“engine x”)簡介
1.是俄羅斯人編寫的十分輕量級的HTTP服務器。
2.是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP代理服務器。
三、搭建Nginx服務器
1.Yum安裝依賴包 gcc pcre-devel openssl-devel
2.創建用戶及組 nginx(防止使用root用戶被人攻擊網站時獲得root權限)
3.解壓nginx源碼包,進入壓縮包,設置配置文件
./configrue
--prefix=/usr/local/nginx \ //指定安裝路徑,默認為這個
--user=nginx \
--group=nginx \
--with-http_ssl_module //指定所要安裝的模塊,nginx為模塊化安裝,可根據個人需求選擇合適的模塊進行安裝,這個為ssl加密功能
--....
4.make && make install //編譯並安裝
5.Ln -s /usr/local/nginx/sbin/nginx/ /sbin/ //創建軟鏈接,方便使用
6.nginx命令的使用
Nginx //啟動服務
Nginx -s stop //關閉服務
Nginx -s reload //重新加載配置文件
Nginx -V //查看軟件信息
Ps : netstat與ss命令都是查看系統中啟動的端口信息,常用選項有:
-a:顯示所有端口的信息
-n:以數字格式顯示端口號
-t:顯示TCP連接的端口
-u:顯示UDP連接的端口
-l:顯示服務正在監聽的端口信息,nginx和httpd都是80,不可同時啟用
-p:顯示監聽端口的服務名稱是什麼(程序名稱)
7.關防火牆和selinux,訪問測試頁面,默認的網頁根目錄為/usr/local/nginx/html/
四、升級nginx服務器
1.編譯新版本nginx軟件,無需安裝(./xxx make)
2.備份老的nginx主程序。並使用編譯好的新版本nginx替換老版本
Mv /usr/local/nginx/sbin/nginx > /usr/local/nginx/sbin/nginxold
//備份的好處是當新版本不好用時可降回老版本
Cp 新版本目錄下的objs/nginx /usr/local/nginx/sbin/ //拷貝新版本
Make upgrade 或 killall nginx 再重啟
3.檢查版本 -V
五、Nginx配置文件的基本框架
Vim /usr/local/nginx/conf/nginx.conf
全局配置(用戶名,日誌,進程)
User nginx; //進程所有者
Worker_processer 1; //啟動進程數量(一般與cpu核數一樣)
Error_log /var/log/nginx/error.log; //日誌文件
Pid /var/run/nginx.pid; //PID文件
Events{
Worker_connections 1024; //單個進程最大併發量
...
}
http{
Server{ //定義虛擬主機
Listen 80;
Server_name localhost;
Location{ //發佈目錄
Root html;
Index ....
}
}
Server{
Listen 80;
Server_name www.xx.com;
Root www;
}
...
}
六、Nginx設置用戶認證界面
目標:訪問頁面需要通過用戶名:tom,密碼:123456來登陸後才可以訪問
1.修改配置文件
Server下{
Auth_basic “認證提示信息”;
Auth_basic_user_file “/usr/local/nginx/pass” //認證密碼文件
Location前{}
...
}
2.安裝生成密碼的文件(httpd-tools),並創建用戶和密碼
Htpasswd -c /usr/local/nginx/pass tom //創建密碼文件,與配置文件裡面的路徑對應
Htpasswd /usr/local/nginx/pass azby //追加用戶,不使用-c選項
Cat /usr/local/nginx/pass //查看用戶是否創建成功
3.重啟nginx服務並訪問測試
七、Nginx虛擬主機
分類:基於域名、端口、IP的虛擬主機
1.基於端口的虛擬主機
Server{
Listen 8080; //端口
Server_name www.xx.com;
...
}
Server{
Listen 8000; //端口
Server_name www.xxcom;
...
}
2.基於IP的虛擬主機
Server{
Listen 192.168.0.1:80;
Server_name www.xx.com;
...
}
Server{
Listen 192.168.0.2:8;;
Server_name www.xxcom;
...
}
3.基於域名的虛擬主機
Server{ //定義虛擬主機
Listen 80;
Server_name www.yy.com; //域名1
Location / { //發佈目錄
Root html; /usr/local/nginx/html/
Index .... //首頁文件
}
}
Server{
Listen 80;
Server_name www.xx.com;
Location / { //發佈目錄
Root www; /usr/local/nginx/www/
Index ....
}
}
...
八、HTTPS加密網站
1.密鑰分類
對稱密鑰:AES、DES 應用:RAR、ZIP壓縮加密(單機加密)需要告訴別人密碼,所以多用於單機
非對稱密鑰:RSA、DSA 應用:網絡加密(https、ssh),對方有私鑰,發傳輸信息用公鑰加密,只有對方能解密
Hash值:MD5、SHA256、SHA512 應用:數據完整性校驗,文件妙傳
2.配置ssl加密網站
生成私鑰 openssl genrsa > cert.key
生成證書 openssl req -new -x509 -key cert.key > cert.pem
修改配置文件
Server{
...
Ssl_certificate cert.pem; //指定證書文件
Ssl_certificate_key cert.key; //指定私鑰文件
去掉配置文件裡關於ssl的註釋
...
Location{}
}
重啟並https訪問驗證
閱讀更多 VC1212138 的文章