Nginx教程

Posted 薇薇的憨宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx教程相关的知识,希望对你有一定的参考价值。

nginx教程(奶妈级)

提示:最全Nginx教程,文末附有资料链接。

一,Nginx简介及(window和Linux)下的安装

1,Nginx的简单介绍:

Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。

+++++++++++++++++++++++++++++++++++++++++++ 为什么用Nginx
+++++++++++++++++++++++++++++++++++++++++++

2,Nginx优点:

Nginx 可以在大多数 UnixLinux OS 上编译运行,并有 Windows 移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。
Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:
在连接高并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。

+++++++++++++++++++++++++++++++++++++++++++废话不多讲,

直接上菜

+++++++++++++++++++++++++++++++++++++++++++

3,Nginx安装及基本配置:

官方网站:http://nginx.org/
<1.>Nginx在windows下安装

在浏览器中访问localhost:80

<2.>Nginx在linux下安装
2.1环境要求
nginx是C语言开发,建议在linux上运行,本教程使用Centos6.4作为安装环境。
gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:
yum install gcc-c++
PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel

openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel

2.2编译及安装
第一步:把nginx的源码包上传至linux服务器
第二步:解压源码包。 tar -zxf nginx-1.8.0.tar.gz
第三步:进入nginx-1.8.0文件夹。使用configure命令创建makefile。
第四步:参数设置如下:
./configure
–prefix=/usr/local/nginx
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–with-http_gzip_static_module
–http-client-body-temp-path=/var/temp/nginx/client
–http-proxy-temp-path=/var/temp/nginx/proxy
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi
–http-scgi-temp-path=/var/temp/nginx/scgi

++++++++++++++++++++注意!!!
上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
+++++>make
+++++>make install

以上操作完成后,进入/usr/local/nginx目录

conf它里面装入的是nginx相关的配置文件
html目录 它里面装入的html代码
sbin目录它里面有一个nginx
想要启动nginx只需要执行bin目录下的nginx命令就可以

Nginx服务在启动时会启动两个服务

4,Nginx常用命令

关闭nginx需要使用:
nginx -s stop 相当于找到nginx进程kill。

退出命令:
nginx -s quit
等程序执行完毕后关闭,建议使用此命令。

重新加载配置文件:
nginx -s reload 可以不关闭nginx的情况下更新配置文件.

+++++++++++++++++++++++++++++++++++++++++++
到这里,

准备工作基本完成
+++++++++++++++++++++++++++++++++++++++++++

二,Nginx配置与应用

1,Nginx虚拟机配置

主要是在描述nginx它是一个http服务器。它是apache的一个替代品。
对于nginx虚拟机配置主要可以从三个方面入手:
1.ip配置
2.域名配置
3.端口配置
它的配置主要体现在nginx/conf/nginx.conf

1.1.测试针对ip地址进行配置

1.2.测试针对于域名进行配置
域名作用:可以方便记忆。
问题:为什么通过域名可以访问到网站。
DNS服务器----域名解析服务器。

1.3.测试针对于端口进行配置

2.Nginx反向代理


完成简单的tomcat集群

3.Nginx负载均衡

所谓的负载均衡简单说就是将一台服务原来承受的压力由多台服务器来分配,可以在nginx中实现tomcat集群,通过weight来分配权重。

4.Nginx+tomcat集群+redis实现session共享

4.1.Session共享问题演示
1.在tomcat中创建项目myweb
2.分别启动两个tomcat,查看sessionid值
Tomcat_main

Tomcat_back

4.2.Session共享问题解决
思想:将原来由每一个tomcat管理的session统一存储到redis中管理

1.下载nginx+tomcat集群+redis实现session共享工具包
https://github.com/jcoleman/tomcat-redis-session-manager/downloads
将以上四个包copy到tomcat的lib目录下(集群中的所有Tomcat都需要有这四个jar)
2.在tomcat/conf/context.xml文件中添加配置(集群中的所有Tomcat都需要配置)

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>

   <Manager className="com.radiadesign.catalina.session.RedisSessionManager"

        host="192.168.19.128"

        port="6379"

        database="0"

         maxInactiveInterval="60"
		 
		 password="admin"
		 />

4.3.查看myweb工具中sessionid



Redis帮助我们存储了session

总结:干完这篇文章,小编猝SI中!!!

+++++++++++++++++++++++++++++++++++++++++++
作者图像:

小编:薇薇的憨宝

以上是关于Nginx教程的主要内容,如果未能解决你的问题,请参考以下文章

markdown 打字稿...编码说明,提示,作弊,指南,代码片段和教程文章

nginx.conf 忽略了 nginx-ingress 配置映射片段

片段 getActivity 不起作用

将 nginx rtmp 片段发送到 WebRTC

text 有用的nginx命令和片段

最全最详细publiccms常用的代码片段