nginx的站点安全

1、源代码安装nginx

    1)、所需环境:

            开发环境:Development tools

                      Server Platform Development

                      Additional Development

                      pcre-devel

            nginx-1.6.0.tar.gz


    2)、源码安装nginx:

            拆解源代码包到/usr/local/src/目录下

            创建系统账号和组nginx

[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.jpg2、实现基于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


3、基于虚拟目录的别名访问

        在根目录/ 下有一个站点名称为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


4、nginx的来源控制

    设置允许192.168.47.200的IP地址访问,拒绝192.168.47.150访问

wKiom1Xe21rS_sknAAClwWlfna0059.jpg

    写在server下表示控制访问主站点的来源,也可以写在location下,表示针对某个站点


    重载并访问测试:

wKioL1Xe3ovxIX8tAAETRIgrKZo310.jpg


wKioL1Xe3uCwDN-fAAIlWraJUig746.jpg


5、nginx的身份验证

    修改配置文件,添加认证设置:

wKioL1Xe4APjJyWQAAC__4SFv9Q262.jpg

    使用指令htpasswd产生认证文件.htpasswd(该指令包含在httpd-tools中)

wKioL1Xe4S7zYu1_AAD6Cmcv3hI292.jpg    

    重载并访问测试:

wKiom1Xe362zq5W4AAHjsIFVW-o235.jpg

wKioL1Xe4cyx6gvBAAIxsRG4ul4798.jpg


6、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


你可能感兴趣的:(nginx,linux,访问控制,身份验证, , ,加密访问,站点安全)