Nginx从入门到实战

0 概述

最近在进行项目开发,用到了Nginx做代理,访问前端静态资源,以前也只是听过,没有系统的学习,最近有时间进行了学习,做了一些简单的总结,以及学习案例。

1 Nginx 简介

1 什么是Nignx

Nginx是一个高性能的Http和反向代理服务器,特点是占用内存少,并发性能力强,专门为性能优化而开发,经受高负载的考验。

2 反向代理

Nginx不仅可以做反向代理,实现负载均衡,还能做正向代理进行上网等goon功能。下面我们看看什么是正向代理。
正向代理,如果把局域网外的internet想象成一个巨大的资源库,则局域网的客户端要访问internet,需要通过代理服务器来访问,这种就是正向代理。
**反向代理:**反向代理,其实客户端对代理时无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,又反向代理服务器去选择目标服务器获取数据,在返回给客户端,此时反向代理服务器和目标服务器就是一个服务器,暴漏的时代理服务器地址,隐藏了真实服务器的IP地址。

3 负载均衡

负载均衡也是 Nginx 常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如:Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。

4 动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。

2 Linux下安装Nginx

官网: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

3 常用命令

nginx常用命令
  1. 查看版本号
[root@hadoop sbin]# ./nginx -v
nginx version: nginx/1.17.1
  1. 启动
[root@hadoop sbin]# ./nginx
  1. 关闭
[root@hadoop sbin]# ./nginx -s stop
  1. 重新加载
[root@hadoop sbin]# ./nginx -s reload
  1. 其他

-c 指定配置文件nginx.conf
-p 指定nginx 目录

更加平滑的启动方式

./nginx -c /usr/local/nginx/conf/nginx.conf -p /usr/local/nginx/

提示,大家可能在启动的时候会报错,找不到配置文件等问题,可以通过这种方式去启动。

4 Nginx配置文件

1 Nginx 配置文件主要包含三部分
  1. 全局块
    从配置文件开始到events块之间的内容,主要设置一些影响nginx服务器整体运行的配置命令,比如 woeker process 1 代表支持的并发处理数量。
  2. events块
    events块主要涉及的指令影响Nginx服务器与用户的网络连接 worker connection 1024,代表支持的最大连接数;
  3. http块
    这一部分是配置中频繁使用的部分,它主要包含http全局块和server块;
    server块的指令主要用于指定主机和端口,upstream指令主要用于负载均衡,设置一系列的后端服务器;location块用于匹配网页位置。

5 反向代理实例

反向代理实例1

需求:访问www.test.com 跳转到tomcat页面

  1. 修改windows 上的hosts文件
    192.168.137.130 www.test.com
    其中192.168.137.130为虚拟机ip。
  2. 修改nginx配置文件:
    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

你可能感兴趣的:(Nginx)