nginx的站點安全

一、源代碼安裝nginxhtml

    1)、所需環境:
nginx

            開發環境:Development tools
bash

                      Server Platform Developmentkoa

                      Additional Developmentide

                      pcre-devel
測試

            nginx-1.6.0.tar.gz
加密


    2)、源碼安裝nginx:
orm

            拆解源代碼包到/usr/local/src/目錄下
server

            建立系統帳號和組nginxhtm

[root@fcy ~]# groupadd -r nginx
[root@fcy ~]# useradd -r -g nginx nginx

             編譯源代碼:

[root@fcy nginx-1.6.0]# ./configure --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --with-pcre

            安裝nginx:

[root@fcy nginx-1.6.0]# make &&make install

            執行nginx的測試命令,檢測nginx的安裝

[root@fcy nginx]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] mkdir() "/var/tmp/nginx/client" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

            提示缺乏目錄,建立便可:

[root@fcy nginx]# mkdir -p /var/tmp/nginx/client
[root@fcy nginx]# ll /var/tmp/nginx/client/
total 0

            啓動nginx並查看進程和端口號:

wKioL1Xeghuga5HtAAKMwQMzTG4820.jpg

            輸入IP地址測試nginx是否可用:

wKioL1XegpWTT0qgAAIjysJFaj4984.jpg二、實現基於IP地址的訪問

        添加兩個測試頁面tec和mkt

[root@fcy nginx]# echo "tec page test">html/tec/index.html
[root@fcy nginx]# echo "tec page test">html/mkt/index.html


        給網卡添加兩個虛擬地址:

wKiom1Xegt7icz7GAAPFdq6waYM741.jpg

        

        修改nginx的配置文件,添加相關設置:

wKioL1XevYPj73FgAACcl6hGmJ4218.jpg

wKiom1Xeu2qyN1Y3AACkQOxqNMs164.jpg


        從新加載配置文件,並添加地址解析:

[root@fcy nginx]# /usr/local/nginx/sbin/nginx -s reload

        wKiom1XevMniK8iFAADHolHtGjg137.jpg


        測試:

wKiom1Xe1U7hkBY1AAD6ogkoaew982.jpg

wKioL1Xe12jwpNLtAADJi5iYpcQ844.jpg


三、基於虛擬目錄的別名訪問

        在根目錄/ 下有一個站點名稱爲qazwsxedc,我但願在訪問時不適用這麼難以記憶的名稱,而是更爲熟悉的vhost,便可以使用nginx的別名設置

        建立目錄/qazwsxedc,並設置主頁index.htnl,內容爲qazwsxedc page test:

[root@fcy nginx]# mkdir /qazwsxedc
[root@fcy nginx]# echo "qazwsxedc page test">/qazwsxedc/index.html

        修改配置文件,添加別名記錄:

wKioL1Xe22ywrbyJAABS_zjSufc072.jpg

        重載配置,並訪問測試:

[root@fcy nginx]# /usr/local/nginx/sbin/nginx -s reload

        wKiom1Xe2baz7ExfAADtuRtaY_4813.jpg


四、nginx的來源控制

    設置容許192.168.47.200的IP地址訪問,拒絕192.168.47.150訪問

wKiom1Xe21rS_sknAAClwWlfna0059.jpg

    寫在server下表示控制訪問主站點的來源,也能夠寫在location下,表示針對某個站點


    重載並訪問測試:

wKioL1Xe3ovxIX8tAAETRIgrKZo310.jpg


wKioL1Xe3uCwDN-fAAIlWraJUig746.jpg


五、nginx的身份驗證

    修改配置文件,添加認證設置:

wKioL1Xe4APjJyWQAAC__4SFv9Q262.jpg

    使用指令htpasswd產生認證文件.htpasswd(該指令包含在httpd-tools中)

wKioL1Xe4S7zYu1_AAD6Cmcv3hI292.jpg    

    重載並訪問測試:

wKiom1Xe362zq5W4AAHjsIFVW-o235.jpg

wKioL1Xe4cyx6gvBAAIxsRG4ul4798.jpg


六、nginx的加密訪問

    結合ssl實現數據的加密訪問

# cd /etc/nginx/cert
# openssl genrsa -des3 -out nginx.key 1024
# openssl req -new -key nginx.key -out nginx.csr
# cp nginx.key nginx.key.bak
# openssl rsa -in nginx.key.bak -out nginx.key
# openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt

    修改nginx配置文件,添加ssl選項:

wKiom1XfCWLgDZyPAAG-09_lBtI053.jpg    

    重載nginx並查看端口

wKioL1XfC7iD46B7AAEqAiOIeH0603.jpg

    訪問測試:

wKioL1XfD0CC7wLdAAF2Z--lkzw425.jpg    

        安裝該證書:

wKioL1XfEDzxttlPAAErpEq0tGU665.jpg


訪問成功:

wKiom1XfD2mx630IAAF7aDzzHpo454.jpg

相關文章
相關標籤/搜索