nginx 学习

lishihuan大约 3 分钟

nginx 学习

https://vip.tulingxueyuan.cn/detail/v_60339f2ce4b029faba198b7a/3open in new window

https://vip.tulingxueyuan.cn/detail/p_602e51fde4b029faba186364/6open in new window

https://blog.csdn.net/qq_29677867/article/details/90112120open in new window

1. nginx 简介

NGinx官网 https://www.nginx.com/open in new window

Nginx 是一款高性能的HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务

Nginx 应用场景

image-20220303225252487
image-20220303225252487

1、http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器

2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

1.1 nginx处理请求逻辑图

20190511170603322

1.2 nginx可以提供的服务

  1. web 服务.
  2. 负载均衡 (反向代理)
  3. web cache(web 缓存)

1.3 nginx 的优点

  1. 高并发。静态小文件
  2. 占用资源少。2万并发、10个线程,内存消耗几百M。
  3. 功能种类比较多。web,cache,proxy。每一个功能都不是特别强。
  4. 支持epoll模型,使得nginx可以支持高并发。
  5. nginx 配合动态服务和Apache有区别。(FASTCGI 接口)
  6. 利用nginx可以对IP限速,可以限制连接数。
  7. 配置简单,更灵活。

1.4 nginx应用场合

  1. 静态服务器(图片,视频服务),另个lighttpd。并发几万,html,js,css,flv,jpg,gif等。
  2. 动态服务,nginx—fastcgi 方式运行PHP,jsp。(PHP并发约500-1500,MySQL 并发约300-1500)。
  3. 反向代理,负载均衡。日pv2000W以下,都可直接用nginx做代理。
  4. 缓存服务。类似 SQUID,VARNISH。

2. nginx 安装

下载官网:https://nginx.org/en/download.htmlopen in new window

通过 https://www.runoob.com/w3cnote/openresty-intro.htmlopen in new window openresty 安装 nginx

2.1 首先 创建文件 制作自动安装脚本 vim openresty.sh

 yum install -y pcre-devel openssl-devel gcc curl
cd /usr/local/
wget https://openresty.org/download/openresty-1.17.8.2.tar.gz
cd /usr/local/
tar -zxvf openresty-1.17.8.2.tar.gz
cd /usr/local/
mv openresty-1.17.8.2 openresty
cd /usr/local/openresty/
 ./configure --with-luajit \
            --without-http_redis2_module \
            --with-http_iconv_module
cd /usr/local/openresty/ 
make && make install

2.2赋予执行文件 chmod +x openresty.sh

运行即可 ./openresty.sh

然后修改环境

$ vi /etc/profile
 
export PATH=/usr/local/openresty/nginx/sbin:$PATH
$ source /etc/profile

OK至此结束 配置完成 可以在 cd /usr/local/openresty/ 目录下找到NGinx 启动他就ok了

这个脚本可以复用 下次直接 赋予执行文件配置 环境即可 虚拟机内

nginx 配置文件

配置基础配置文件

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

nginx代理模式

nginx负载均衡

Nginx限流

nginx动静分离

Nginx 调优+镜像服务器

nginx热备

nginx安全认证

js分公司Nginx 配置

nginx_配置

nginx上传附件报错

上传出现 Request Entity Too Large


    include       mime.types;
    default_type  application/octet-stream;

	tcp_nopush on;
	gzip on;
	gzip_min_length 1k;
	gzip_buffers 4 16k;
	gzip_http_version 1.0;
	gzip_comp_level 2;
	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml image/x-icon application/javascript;
	gzip_vary on;


    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  120;
    proxy_connect_timeout 30;
    proxy_send_timeout 180;
    proxy_read_timeout 180;
    proxy_buffer_size 512k;
    proxy_buffers 32 512k;
    proxy_busy_buffers_size 512k;
    client_max_body_size   200m;
	underscores_in_headers on;
    #gzip  on;



    server {
    ##....
    }
    ##
}

异常

1.附加上传:解决 413 Request Entity Too Large(请求实体太大)

nginx.conf配置文件,打开 在http{}中加入 client_max_body_size 10m;

然后重启nginx =====>

​ /usr/local/nginx/sbin

​ ./nginx -s reload