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

[[email protected] ~]# groupadd -r nginx
[[email protected] ~]# useradd -r -g nginx nginx

编译源代码:

[[email protected] 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:

[[email protected] nginx-1.6.0]# make &&make install

执行nginx的测试命令,检测nginx的安装

[[email protected] 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

提示缺少目录,创建即可:

[[email protected] nginx]# mkdir -p /var/tmp/nginx/client
[[email protected] nginx]# ll /var/tmp/nginx/client/
total 0

启动nginx并查看进程和端口号:

输入IP地址测试nginx是否可用:

2、实现基于IP地址的访问

添加两个测试页面tec和mkt

[[email protected] nginx]# echo "tec page test">html/tec/index.html
[[email protected] nginx]# echo "tec page test">html/mkt/index.html

给网卡添加两个虚拟地址:

修改nginx的配置文件,添加相关设置:

重新加载配置文件,并添加地址解析:

[[email protected] nginx]# /usr/local/nginx/sbin/nginx -s reload

测试:

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

在根目录/ 下有一个站点名称为qazwsxedc,我希望在访问时不适用这么难以记忆的名称,而是更为熟悉的vhost,即可以使用nginx的别名设置

创建目录/qazwsxedc,并设置主页index.htnl,内容为qazwsxedc page test:

[[email protected] nginx]# mkdir /qazwsxedc
[[email protected] nginx]# echo "qazwsxedc page test">/qazwsxedc/index.html

修改配置文件,添加别名记录:

重载配置,并访问测试:

[[email protected] nginx]# /usr/local/nginx/sbin/nginx -s reload

4、nginx的来源控制

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

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

重载并访问测试:

5、nginx的身份验证

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

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

重载并访问测试:

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选项:

重载nginx并查看端口

访问测试:

安装该证书:

访问成功:

时间: 2024-11-08 11:45:08

nginx的站点安全的相关文章

nginx多站点设置

如无实际生产环境(域名),可以修改本地host文件,将两个域名指向这个服务器,对两个域名进行访问. nginx多站点设置: 试验环境:CentOS6.5 64bit   lnmp nginx配置文件目录:/usr/local/webserver/nginx/conf 这里,我使用多个配置文件的方式进行配置: 修改nginx.conf文件内容,去除所有server段的代码, 增加最后一行include 站点配置文件目录 http { include       mime.types; defaul

nginx多站点,ssl偏爱第一个证书

一个老旧的系统上,部署了nginx及php,今天启用新的ssl证书,在nginx上做了设置,执行nginx -t语法检查没有问题.但重载nginx以后,浏览器访问站点失败,提示证书问题,查看证书,确是同一个nginx下另外一个站点的证书. 再查那个站点的配置,也启用的自己的ssl证书,但这个证书早过期了.于是咨询其它人,问能不能临时把这个ssl配置给取消掉,反正也是过期的证书,也没啥用.再保证不影响其它业务的前提下,我把配置文件(nginx主配置文件以include形式包含单独的文件,不是那种i

nginx自定义站点目录及简单编写开发网页内容讲解

[[email protected] conf]# egrep -v "^$|#" nginx.conf.default >nginx.conf[[email protected] conf]# pwd/application/nginx/conf [[email protected] conf]# vim nginx.conf   1 worker_processes  1;   2 events {   3     worker_connections  1024;   4 

nginx 多站点配置方法集合(转)

关于nginx的多站设置,其实和apache很相似,假设我们已经有两个域名,分别是:www.websuitA.com和www.websuitB.com.并且这两个域名已经映射给了IP为192.168.1.1的服务器. 那么我们开始吧: 1.为我们的站点创建配置文件 我是这么做的,在nginx的配置文件conf目录下创建一个专门存放VirtualHost的目录,命名为vhosts_conf,可以把虚拟目录的配置全部放在这里.在里面创建名为vhosts_modoupi_websuitA.conf的配

Ubuntu系统下lnmp环境搭建和Nginx多站点配置

最近需要使用Ubuntu作为服务器搭建Lnmp环境,顺便将操作过程写下来,与大家分享.如有不足之处,欢迎大家提出不同意见.(本文默认读者已经熟悉相关linux命令的使用,比如创建文件和文件夹,编辑文件的命令等.) 操作系统:Ubuntu 15.10 本系统是新装的,所以没有Nginx.mysql和php环境.如果之前有装过这些环境的还得先把之前的软件先卸载. 一.安装MySQL 直接输入命令:sudoapt-get install mysql-server mysql-client 中间需要你输

Nginx 多站点配置

最近学习和练习的时候,为Laravel应用程序添加了好几个站点,有些程序删除之后站点却还留着,这让强迫症感到非常难受,上次解决了这个问题之后并没有记录一下,于是导致今天又花了很多时间折腾,所以特地来写下我的第一篇帖子,本帖基于已经正确安装好Laravel之后.如果有什么不正确的地方,还望指正. 配置站点 根据官方文档,我们有两种添加站点的方式: 1.在 /Homestead/src/stubs/Homestead.yaml 文件中添加站点: sites: - map: homestead.app

nginx多站点配置

主配置文件 nginx.conf: user www; worker_processes 2; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 102400; } ht

nginx 多站点配置方法

关于nginx的多站设置,其实和apache很相似哒. 假设我们已经有两个域名,分别是:www.websuitA.com和www.websuitB.com.并且这两个域名已经映射给了IP为192.168.1.1的服务器. 1.为我们的站点创建配置文件 我是这么做的,在nginx的配置文件conf目录下创建一个专门存放VirtualHost的目录,命名为vhosts_conf,可以把虚拟目录的配置全部放在这里.在里面创建名为vhosts_modoupi_websuitA.conf的配置文件并打开,

Nginx配置站点适配PC和手机

考虑到站点的在多种设备下的兼容性,有非常多站点会有手机版和电脑版两个版本号.訪问同一个站点URL,当服务端识别出用户使用电脑訪问.就打开电脑版的页面,用户假设使用手机訪问,则会得到手机版的页面. 1.推断client的设备类型 要想让站点适配PC和手机设备,首先要能做出准确的推断.HTTP请求的Header中的User-Agent能够区分client的浏览器类型.能够通过User-Agent来推断client的设备. 不管是PC还是手机,因为操作系统.浏览器的多样性,自己来实现这个推断并不eas