最近在进行项目开发,用到了Nginx做代理,访问前端静态资源,以前也只是听过,没有系统的学习,最近有时间进行了学习,做了一些简单的总结,以及学习案例。
Nginx是一个高性能的Http和反向代理服务器,特点是占用内存少,并发性能力强,专门为性能优化而开发,经受高负载的考验。
Nginx不仅可以做反向代理,实现负载均衡,还能做正向代理进行上网等goon功能。下面我们看看什么是正向代理。
正向代理,如果把局域网外的internet想象成一个巨大的资源库,则局域网的客户端要访问internet,需要通过代理服务器来访问,这种就是正向代理。
**反向代理:**反向代理,其实客户端对代理时无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,又反向代理服务器去选择目标服务器获取数据,在返回给客户端,此时反向代理服务器和目标服务器就是一个服务器,暴漏的时代理服务器地址,隐藏了真实服务器的IP地址。
负载均衡也是 Nginx 常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如:Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。
官网:http://nginx.org/en/
这里我实在官网先下载好的安装包上传到服务器上的。
使用如下命令也可以
wget http://nginx.org/download/nginx-1.17.1.tar.gz
版本:nginx-1.17.1.tar.gz
在安装前需要做一些准备工作:
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
cd /opt/software
tar -xzvf nginx-1.17.1.tar.gz
cd /opt/software/nginx-1.17.1
./configure
make && make install
此时安装好后要去/usr/local/nginx目录下去执行
cd /usr/local/nginx/sbin
./nginx
[root@hadoop sbin]# ps -ef|grep nginx
root 10305 1 0 00:16 ? 00:00:00 nginx: master process ./nginx
nobody 10306 10305 0 00:16 ? 00:00:00 nginx: worker process
root 10500 10455 0 01:31 pts/0 00:00:00 grep nginx
[root@hadoop sbin]# ./nginx -v
nginx version: nginx/1.17.1
[root@hadoop sbin]# ./nginx
[root@hadoop sbin]# ./nginx -s stop
[root@hadoop sbin]# ./nginx -s reload
-c 指定配置文件nginx.conf
-p 指定nginx 目录
更加平滑的启动方式
./nginx -c /usr/local/nginx/conf/nginx.conf -p /usr/local/nginx/
提示,大家可能在启动的时候会报错,找不到配置文件等问题,可以通过这种方式去启动。
woeker process 1
代表支持的并发处理数量。worker connection 1024
,代表支持的最大连接数;需求:访问www.test.com 跳转到tomcat页面
192.168.137.130 www.test.com
server {
listen 80;
server_name 192.168.137.130;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
需要修改如下两处:
server_name 192.168.137.130;
proxy_pass http://127.0.0.1:8080
以上配置完成那访问:www.test.com页面就会跳转到tomcat页面,这里tomcat 安装我就不说了(ootb)
//TODO