Nginx的使用和作用(反向代理,负载均衡,静态网站部署,动静分离,虚拟主机)上篇

1.Nginx的简介:

1.nginx是一款轻量级的web服务器和反向代理服务器,也可以作为邮件代理服务器
2.占用内存少,并发处理能力强,cpu,内存等资源消耗非常低,运行非常稳定(Nginx官方测试为5万并发请求)
3.与Nginx的并发处理能力在同类型的web服务器有Apache(阿帕奇,世界使用排名第一的web服务器软件),Lighttpd(德国的),Tengine(阿里巴巴的)
4.Nginx的并发处理能力在同类型的Web服务器中表现极好,在全世界范围内大量网站使用了nginx,国内的互联网中也大量使用了Nginx,比如:淘宝,新浪,网易,搜狐,美团
5.Nginx是免费开源的,同时也有收费的商业版本,商业版本提供了性能优化,紧急问题处理等技术支持
6.Nginx是由俄罗斯人伊戈尔·赛索耶夫,采用C语言开发编写的

2.Nginx的作用:

  • 负载均衡
  • 反向代理
  • 静态网站部署
  • 动静分离
  • 虚拟主机

3.反向代理

  • 是指以代理服务器来接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器
  • 客户只需要发送请求到代理服务器,代理服务器会将请求转发给内部的服务器去处理,处理完毕之后将结果返回给客户
  • 整个过程中客户和实际处理服务器是不会直接建立连接的
  • 反向代理隐藏了真正的服务端,就像使用百度,背后有成千上万台服务器,我们并不知道那一台为我们服务,我们只知道这个代理服务器,它会把我们的请求转发到为我们提供数据的服务器

反向代理

正向代理:
1.正向代理类似一个跳板机,代理访问外部资源
2. 比如,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,
这个代理服务器,他能访问那个我不能访问网站,于是我先连上代理服务器,
告诉他我需要那个无法访问的网站的内容,代理服务器去取,然后返回给我

nginx不处理用户请求,只是接受到请求以后将请求转发给后台的Tomcat(是一个免费的开源的轻量级Web 应用服务器),由后台的Tomcat来处理我们的用户请求,这时ngxin就是反向代理
正向代理的对象是客户端,反向代理的对象是服务端

4.Linux命令的使用:

1.yum install -y wget   //安装wget,yum是Shell前端软件包管理器
2.wget  http://nginx.org/download/nginx-1.18.0.tar.gz   //安装nginx软件
3.grep查找命令,查找文件里符合条件的字符串或者指定文件
grep test *file  //查找有file字样的文件中包含test字符串的文件,并打印该字符串的行
grep  文件名   //查找文件
4.pwd  //查看当前目录
5.cd  目录名路径/文件名路径  //切换到目录或文件名
6.ll命令就是 ls -l  的缩写,
7.mkdir soft   //创建名字为soft的目录
8.rz    //上传文件到服务器,  rz    - y   //上传文件,如果文件已经存在就覆盖
9.  sz  文件名    //下载文件
10.tar  是解压/压缩命令 -x:解压, -z:是带有gzip属性的,-f:解压后的名字,-v是显示所有过程
tar  -zxvf  文件名
11.ssh root@ip      //远程连接服务器        //root:远程linux系统登录用户名,ip:远程linux系统IP地址
12.make   //编译
13.rm   -rf  文件名/目录    //强制删除目录或文件
14.kill  主进程号  //关闭nginx
15.ps -ef | grep nginx     //ps将某个进程显示出来,grep是查找,中间管道符,把前面命令的输出,作为后面命令的输入,  查看nginx进程
16.yum install -y lrzsz   //如果没有rz功能需要下载

1.wget是Linux的一个下载文件工具,是开源软件,支持断点下载
2. yum install -y/-q 软件路径 //-y安装过程提示,-q不显示安装过程

5.Nginx环境搭建

1.免费的开源官网:http://nginx.org
2.Nginx有Windows版本和Linux版本,但更推荐使用Linux
3.我们习惯将下载或者上传的安装文件放在/home/soft/目录下
4.我们一般在windows下载Linux版的nginx然后再上传到Linux
5.1使用Xshell与服务器进行连接

在这里插入图片描述
在这里插入图片描述
然后执行上方的一次性安装命令:
这里以前安装过了,才会出现这个页面
在这里插入图片描述

5.2安装前的准备:

Nginx的安装需要确定Linux安装相关的几个库,否则配置和编译会出现错误,具体检查安装过程为:

  • gcc编译器是否安装

    • 检查是否安装:yum list installed | grep gcc
    • 执行安装yum install gcc -y
  • openssl库是否安装

    • 检查是否安装:yum list installed | grep openssl
    • 执行安装yum install openssl openssl-devel -y
  • pcre库是否安装

    • 检查是否安装:yum list installed | grep pcre
    • 执行安装:yum install pcre pcre-devel -y
  • zlib库是否安装

    • 检查是否安装:yum list installed | grep zlib
    • 执行安装:yum install zlib zlib-devel -y

在这里插入图片描述

一次性安装: 执行如下:

yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y

5.3正式安装:

1.先创建目录soft:用于存放下载的软件
2.上传文件,将文件上传到soft目录中
在这里插入图片描述
3.然后解压文件 tar -zxvf 文件名
在这里插入图片描述

4.进入这个解压的文件:cd nginx文件名
在这里插入图片描述

  1. 配置nginx安装前路径为:/usr/local/nginx
    ./configure --prefix=/usr/local/nginx
    在这里插入图片描述
    在这里插入图片描述

6.然后执行make命令进行编译
在这里插入图片描述
7.然后执行make install 进行安装
在这里插入图片描述
8.进入文件/usr/local下的nginx文件中的conf文件
在这里插入图片描述

在这里插入图片描述
9.然后对nginx.conf文件进行配置,就可以部署静态网站
在这里插入图片描述

一般配置的话我们先下载下来,然后在windows中进行配置,之后再上传

nginx中的 html文件中有两个html分别是出现错误时转发到50x.html,显示错误信息
index.html是欢迎首页
在这里插入图片描述
这是欢迎首页
在这里插入图片描述
10.启动nginx,在nginx/下的sbin目录中,执行./nginx
在这里插入图片描述
在这里插入图片描述
此时端口冲突,需要关闭nginx,用配置文件启动nginx

ps -ef | grep nginx //查看nginx是否启动
在这里插入图片描述

可以不用切换到sbin目录,只要想办法执行sbin目录下的nginx就可以了

11.用配置文件启动nginx

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

在这里插入图片描述
这里已经启动过了,其中-c是指定配置文件

12.重启nginx

/usr/local/nginx/sbin/nginx -s reload

此时如果配置完成网站就可以打开了

5.4配置静态网站

检查配置文件是否正确

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -t

在这里插入图片描述
查看nginx版本:

/usr/local/nginx/sbin/nginx -v //显示nginx版本
/usr/local/nginx/sbin/nginx -V //显示nginx版本,编译器版本和配置参数

在这里插入图片描述

nginx核心配置文件:

# 配置work进程运行用户,nobody也是一个Linux用户,一般用于启动程序,没有密码
#user  nobody;
# 配置工作进程数目,根据硬件调整(一般等于CPU的总核数或总核数的两倍)
worker_processes  1;
# 配置全局错误日志及类型 [debug | info | notice | warn | error | crit ]
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
# 指定 pid 存放的路径
#pid        logs/nginx.pid;

#配置工作模式模式和连接数
events {
# 单个woker进程支持的最大连接数,nginx支持的总连接数就等于,worker_processes*worker_connections
#worker_connections取值上限为65535
    worker_connections  1024;
}

#配置http服务器,利用它的反向代理功能提供负载均衡的支持
http {
#配置nginx支持哪些多媒体类型,可以在conf/mime.types查看支持哪些多媒体类型
    include       mime.types;
    #默认文件类型 流类型,可以理解为支持任意类型
    default_type  application/octet-stream;
#配置日志格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
#配置access_log 日志及存放路径,并使用上面定义的main日志格式
    #access_log  logs/access.log  main;

    sendfile        on;   #开启高效文件传输模式
    #tcp_nopush     on;  #防止网络阻塞

    #keepalive_timeout  0;
    keepalive_timeout  65;   #长链接超时时间,单位是秒

    #gzip  on;   #开启gzip压缩输出

## 定义作为web服务器的相关属性  可以有多个
    server {
    # 监听的端口
        listen       80;
        # 域名
        server_name  http://www.heptagram.ltd;
		# 字符集采用utf-8或者gbk
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		# 定义一个虚拟主机的属性,所有的web服务必须定义成一个虚拟主机
		#/指服务器ip或者域名
        location / {
        # root是配置服务器的默认网站根目录位置,默认为nginx安装主目录下的HTML目录
            root   /opt/www/wz;
            #配置首页文件的名称
            index  yanhua.html yanhua.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        #精确匹配
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值