Nginx入门
1、Nginx简介
Nginx (“engine x”)
- 是俄罗斯人编写的十分"轻量级"的"HTTP"服务器
轻量级服务器:CPU、内存占用较少,同样的资源配置能为更多用户服务
HTTP服务器
是提供HTTP协议的服务器,应用广泛的有nginx和apache,默认端口为80
- 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器
反向代理服务器 如下图
smtp: 用来发送邮件的
pop3:用来接收邮件的。客户端操作不会同步到服务器端,操作的仅仅是客户端;
imap:用来接收邮件的,客户端邮件的操作会同步到服务器,比如客户端将某邮件置为已读,服务器端也会标志位已读。
2、Nginx安装
(1)安装依赖
1、gcc:GccGNU C Compiler是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
2、pcre-devel:nginx的Rewrite模块和http模块会使用到pcre正则表达式语法,因此会使用到pcre库,需要安装pcre编译版本库,pcre-devel提供开发阶段的头文件和编译项目的源代码。
3、openssl-devel:openssl模块提供加密库和加密算法,使用ssl需要安装openssl模块。
(2)安装命令
yum install -y gcc openssl-devel pcre-devel
useradd nginx
tar -xf nginx.1.12.2.tar.gz
cd nginx-1.12.2
./configure \
>> --prefix=/usr/local/nginx \ #指定安装目录
>> --user=nginx \ #指定账户名称
>> --group=nginx \ #指定组账户
>> --with-http_ssl_module \ #支持加密功能
>> --with-stream \ #支持TCP/UDP代理模块
>> --with-http_stub_status_module #开启status状态页面
make && make install #编译并安装
(3)Nginx配置文件及目录
/usr/local/nginx //安装目录
conf/nginx.conf //主配置文件
html //网页目录
logs //logs日志文件
sbin/nginx //启动脚本
(4) nginx进程管理
- 启动nginx服务
/usr/local/nginx/sbin/nginx
- 重启、关闭nginx服务
/usr/local/nginx/bin/nginx -s reload/stop
(5)查看nginx是否启动成功
ps aux | grep nginx //查看进程
netstat -utnalp | grep nginx //查看端口
正反向代理服务器
(1)什么是正向代理服务器?
正向代理,其实是“代理服务器”代理了客户端,去和“目标服务器”交互,
目标服务器并不知道是哪个客户端访问了他。
(2)正向代理服务器的用途
1、突破访问限制:突破自身IP的访问限制,访问国外网站。
2、提高访问速度:通常代理服务器会设置一个较大的“硬盘缓存区”,将部分请求放入缓存区中,当用户请求时,直接由缓存区返回信息,以提高访问速度。
3、隐藏真实的IP地址:上网者也可以通过这种方式隐藏自己的IP,免受攻击。
(3)什么是反向代理服务器?
反向代理,其实是“代理服务器”代理了目标服务器,去和客户端进行交互。
(4)反向代理服务器的用途
1、隐藏服务器的真实IP地址:客户端访问代理服务器,并不知道真实服务器的IP地址。
2、负载均衡:反向代理服务器可以根据真实服务器的负载状况,将客户端不同请求发到不同真实的服务器上,保证业务的稳定性
3、提高访问速度:反向代理服务器可以对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务,提高访问速度。
4、提供安全保障:反向代理服务器可以作为应用层防火墙,为网站提供对基于Web的攻击行为的防护(例如Dos和DDOS),还可以为后端服务器统一提供加密的ssl加速,提供HTTP访问认证等。
(5)正反向代理服务器的区别
- 正向代理其实是客户端代理,反向代理是服务器代理。
- 正向代理一般是客户端架设的,而反向代理是服务器代理。
- 正向代理中,服务器不知道真正的客户端是谁,反向代理中,客户端不知道真正的服务器是谁。
- 正向带路主要是用于解决访问限制问题,而反向代理则是提供负载均衡、安全防护等作用,二者均能提高访问速度。