Nginx與Https加密網站

一、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訪問驗證


分享到:


相關文章: