nginx

是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。


反向代理:

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。


反向代理服务器:

只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的***并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

反向代理方式和包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。

反向代理服务器就像是真正的内容服务器

150341359.gif

案例:在linux上实现nginx

一、上传需要的文件

查看:

163636363.jpg


二、安装libevent

1.解压缩:

[root@server1 nginx]#tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src

2.切换到libevent-2.0.16-stable目录下:如图

163849681.jpg

配置:如图

164106242.jpg

编译及安装:make && make install


3.切换到安装目录/usr/local/libevent/,查看,如图

164330593.jpg

4.处理头文件以及库文件;编辑/wtc/ld.so.conf.d/libvent.conf 文件

usr/local/libevent/lib

5.使用idconfig刷新缓存、查看加载:如图

164435716.jpg

6.将头文件加载到系统文件中:

ln -s /usr/local/libevent/include /usr/include/libevent

三、安装pcre

pcre(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正规表达式库.这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。 Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒。因此改用pcre来解决C语言中使用正则表达式的问题

1.查看是否安装pcre软件:

rpm -qa | grep pcre

2.安装pcre-devel安装包,如图:

164622969.jpg

四、安装nginx

1.创建组及账号:

164624409.jpg

2.进入/nginx,解压nginx-1.0.11压缩包

tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/

3.切换到/usr/local/src/nginx-1,0.11目录下

配置:

[root@server1 nginx-1.0.11]#./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 \ 主进程ID

--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 表达库

如图:

123348332.jpg


4.编译及安装:make&&make install

5.安装路径在/usr/local/nginx,进入查看:

123417200.jpg

6.进入到sbin目录下,检查语法:

./nginx -t

发现提醒错误,如图:

123428575.jpg

7.创建目录;

[root@server1 sbin]#mkdir -pv /var/tmp/nginx/client

8.再检查语法成功!

启动nginx:

[root@server1 sbin]#./nginx

9.查看端口,如图:

123443203.jpg

安装配置成功!

查看nginx配置文件:如图:

vim /etc/nginx/nginx.conf

134630390.jpg

关于nginx站点安全

1.身份验证

2.来源控制

3.加密通讯

加密访问过程与apache相似,只是在捆绑时注意,进入/etc/nginx/nginx.conf目录下进行捆绑,如图:

182615357.jpg

将CA证书和机构证书合并:将CA证书文件拷贝到/usr/local/nginx/certs(放置机构证书)目录下进行合并:如图:

185049285.jpg

配置完成后停止nginx,然后进行测试,测试成功后再重新打开nginx。

查看端口:

183032896.jpg

最后访问网页。。。