Nginx笔记

本文涉及的产品
.cn 域名,1个 12个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 浅学习

配置yum源

yum install gcc gcc-c++ autoconf make -y

安装nginx第三方库,静态资源压缩功能所需要的gzip lib库,nignx需要支持URL重写,所需的pcre库,perl开发的依赖库,以及nginx搭建加密站点 https,所需的openssl依赖库等

yum install zlib zlib-devel openssl-devel pcre pcre-devel httpd-tools vim -y

关闭防火墙以及selinux

编译安装nginx

# wget http://nginx.org/download/nginx-1.18.0.tar.gz

解压缩

[root@master opt]# tar -zxvf nginx-1.18.0.tar.gz

[root@master nginx-1.18.0]# ls -ltotal 764drwxr-xr-x. 6 1001 1001   4096 Jul 29 04:21 auto 检测系统模块依赖信息-rw-r--r--. 1 1001 1001 302863 Apr 21  2020 CHANGES 记录nginx的变化-rw-r--r--. 1 1001 1001 462213 Apr 21  2020 CHANGES.rudrwxr-xr-x. 2 1001 1001    168 Jul 29 04:21 conf     存放nginx主配置文件的目录-rwxr-xr-x. 1 1001 1001   2502 Apr 21  2020 configure 可执行脚本 释放编译文件的定制脚本drwxr-xr-x. 4 1001 1001     72 Jul 29 04:21 contrib 提供vim插件,让配置文件颜色区分,更友好drwxr-xr-x. 2 1001 1001  40 Jul 29 04:21 html存放了标准的htnl页面文件-rw-r--r--. 1 1001 1001   1397 Apr 21  2020 LICENSEdrwxr-xr-x. 2 1001 1001     21 Jul 29 04:21 man-rw-r--r--. 1 1001 1001     49 Apr 21  2020 READMEdrwxr-xr-x. 9 1001 1001     91 Jul 29 04:21 src    存放了nginx

编译三部曲

1.进入软件源代码目录,执行编译脚本文件,如制定安装路径,开启额外功能

[root@master nginx-1.18.0]# ./configure --prefix=/opt/nginx-1.8 --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio

2.下一步安装

[root@master nginx-1.18.0]# make

3.安装

[root@master nginx-1.18.0]# make install

[root@master nginx-1.8]# lsconf  html  logs  sbin

conf存放nginx的配置文件  nginx.conf

html存放nginx的网页根目录文件,存放站点的讲台文件数据

logs存放nginx的各种日志目录

sbin存放该软件的可执行命令

[root@master ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

启动nginx

[root@master sbin]# /opt/nginx-1.8/sbin/ nginx

[root@master sbin]# ps -ef | grep nginx |grep -v grep

root      26968      1  0 05:20 ?        00:00:00 nginx: master process /opt/nginx-1.8/sbin/nginx

nobody    26969  26968  0 05:20 ?        00:00:00 nginx: worker process

直接启动会失败

将nginx加入环境变量

[root@master profile.d]# cat /etc/profile.d/nginx.sh

export PATH="$PATH:/opt/nginx-1.8/sbin/"

退出会话,重新登陆

[root@master ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/nginx-1.8/sbin/:/root/bin

停止nginx

nginx -s stop

加载配置文件,不用重启

nginx -s reload

nginx配置文件

[root@masternginx-1.8]# cat  conf/nginx.conf

#user  nobody;

worker_processes  1;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;        # 全局指令

events {

   worker_connections  1024;      # 局部指令

}

# http语法块 核心功能配置

http {

   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  logs/access.log  main;

   sendfile        on;

   #tcp_nopush     on;

   #keepalive_timeout  0;

   keepalive_timeout  65;

   #gzip  on;

   # server{}语句块

   拟主机配置

   server {

       listen       80;

       server_name  localhost;

       #charset koi8-r;

       #access_log  logs/host.access.log  main;

       location / {

           root   html;

           index  index.html index.htm;

       }

       #error_page  404              /404.html;

       # redirect server error pages to the static page /50x.html

       #

       error_page  500 502503 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;

   #    }

   #}

Nginx命令行

1.nginx启停指令,-s给nginx进程发送某种信号

nginx # 初次启动

nginx -sstop

nginx -sreload # 平滑重启,利用reload可以在不重启nginx进程的情况下,重新加载配置文件

2.查看nginx的帮助信息

[root@master conf]# nginx -h

nginx version: nginx/1.18.0

Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:

 -?,-h         : this help

 -v            : show versionand exit

 -V            : show versionand configureoptions thenexit # 列出nginx版和编译参数信息

 -t            : test configurationand exit#检查nginx配置文件,语法是否正确

 -T            : test configuration, dump itand exit# 检查配置,输出配置信息

 -q            : suppress non-errormessages duringconfiguration testing# 在检测配置文件期间屏蔽非错误信息

 -ssignal    : send signalto amaster process: stop, quit, reopen, reload # 给nginx主进程发送信号 停止、优雅停止、重读配置文件、重新记录配置文件

 -pprefix    : setprefix path(default: /opt/nginx-1.8/)  # 设置nginx目录前缀

 -cfilename  : setconfiguration file(default: conf/nginx.conf)# 指定配置文件启动

 -gdirectives : setglobal directivesout ofconfiguration file# 覆盖设置一些默认参数

Nginx master信号传递

1.master 主进程是不处理请求的。而是分配请求发给worker进程,主机进程负责重启,热加载,热部署等

2.master是根据nginx.conf 中work_process定义启动时创建的工作进程数

3.当worker运行后,master就处于一个等待的状态,等待用户的请求来临,或者系统信号

4.系统管理员可以发送kill指令,或者nginx -s信号,这样的形式操纵nginx

nginx信号集

nginx -s 对应的信号功能如下

参数      信号      含义

stop    TERM        强制关闭nginx服务

null    INT         强制关闭整个nginx服务

quit    QUIT        优雅的关闭整个服务

reopen  USR1        重新打开日志记录

reload  HUB         重新读取配置文件,并且优雅的退出旧的worker

Nginx热部署功能

高可用的特性,热部署

热部署的特点:在不重启或者关闭进程的情况下,新的应用直接替换旧的应用

更换nginx的二进制命令版本

热部署大致流程

1.备份旧的程序,二进制文件 备份命令 ,/opt/nginx-1.8/sbin/nginx

2.编译安装新的二进制文件,覆盖旧的二进制文件(再装一个版本的nginx,且替换旧的nginx命令)

3.发送USR2信号发给旧的master进程

4.发送WINCH信号给旧的matser进程

5.发送QUIT信号给旧的master进程

环境准备

1。旧的nginx程序版本

[root@master ~]# nginx -v

nginx version: nginx/1.18.0

2.准备一个新的nginx版本

wget http://nginx.org/download/nginx-1.21.1.tar.gz

备份旧的二进制命令

[root@master sbin]# mv nginx nginx1.8

3.检查旧的二进制命令参数

[root@master ~]# nginx1.8 -V

nginx version: nginx/1.18.0

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

built with OpenSSL 1.0.2k-fips  26 Jan 2017

TLS SNI support enabled

configure arguments: --prefix=/opt/nginx-1.8 --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio

4.下载编译安装新版本

[root@master opt]# wget http://nginx.org/download/nginx-1.21.1.tar.gz

[root@master opt]# cd nginx-1.21.1

[root@master nginx-1.21.1]# ./configure --prefix=/opt/nginx-1.8 --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio

# 编译三部曲

[root@master nginx-1.21.1]# make && make install

5.检查新的版本的nginx信息

[root@master nginx-1.8]# cd sbin

[root@master sbin]# ls

nginx  nginx1.8

[root@master sbin]# nginx -v

nginx version: nginx/1.21.1

6.发送一个USR2信号给旧的matser process,租用使得nginx旧的版本停止接收用户请求,并且切换为新的nginx版本

[root@master ~]# kill -USR2 'cat /opt/nginx-1.8/logs/nginx.pid'

8.发送WINCH信号,给旧的master进程,让旧的master进程优雅的退出

# kill -WINCH 'cat /opt/nginx1.8/logs/nginx.pid.oldbin'

nginx工作模式master-worker

nginx热部署功能,在不影响用户体验下,进行软件版本升级,也就是不主动的杀死worker,就能够更换软件的二进制命令

Nginx日志切割

ab -kc 10 # 并发-n 100 http://10.35.202.10

日志切割,能够控制单个日志文件的大小,便于对日志进行管理

[root@master logs]# ll

total 20

-rw-r--r--. 1 root root 10480 Jul 30 03:15 access.log

-rw-r--r--. 1 root root  1260 Jul 30 02:20 error.log

-rw-r--r--. 1 root root     6 Jul 30 02:21 nginx.pid

1. 对nginx日志进行切割

给当前日志文件重命名

[root@master logs]# mv access.log "access.log$(date +"%Y-%m-%d")"

2.发送信号给nginx主进程,给他发送一个重新打开的信号,让nginx生成新的日志文件

[root@master logs]# nginx -s reopen  # 这个命令等同于 kill -USR1 ‘cat nginx.pid’

3. 注意在以上的nginx重命名日志切割链,不要立即对文件修改,而是要注意等待几秒钟,应为nginx的工作模式特点,master下发指令给worker去干活,刚发指令的时候,只是一个标记,当业务量很大的时候,修改操作有点慢。

4.日志切割主要以定时任务及脚本

[root@bogon sbin]# cat cut_nginx_log.sh

#! /bin/bash

#nginx

logs_path="/opt/nginx/logs/"

mkdir -p ${logs_path}$(date -d "yesterday" +"% Y")/$(date -d "yesterday" + "%m")

mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" + "%Y-%m-%d").log

kill -USR1 ` cat /opt/tngx232/logs/nginx.pid`

定时任务

* * * * *

分 时 日 月 周

#crontab -e

0 0 * * * /bin/bash  /hekang/cut_log.sh

Nginx虚拟主机

虚拟主机指的就是一个独立的站点,具有独立的域名,有完整的www服务,例如网站、FTP、邮件等。

Nginx支持多虚拟主机,在一台机器上可以运行完全独立的多个站点。

虚拟主机可以在一台服务器,同一个Nginx进程上运行多个网站。

nginx.conf

user nobody;

http{

   # 在http{}标签内定义虚拟主机

   # 默认加载 自上而下

   server{

   

   }

   # 第二个虚拟主机

   # 一个server可以理解为一个网站

   server{

   

   }

}

#user  nobody;

worker_processes  1;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

   worker_connections  1024;

}

http {

   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  logs/access.log  main;

   sendfile        on;

   #tcp_nopush     on;

   #keepalive_timeout  0;

   keepalive_timeout  65;

   #gzip  on;

   server {

       # 定义虚拟主机的端口号,用户访问网站的入口

       listen       80;

       # 填写主机的域名配置,没有域名可以写localhost 或者 _ 也行

       server_name  localhost;

       # 定义网站编码

       charsetutf-8;

       #access_log  logs/host.access.log  main;

# nginx的路径匹配规则,任何的nginx请求都会进入如下location的配置去定义的目录找资料

       location / {

          # root 关键词 是定义网页的根目录 这个html是以nginx安装的路径为相对

           root   html;

           # index关键词 定义nginx首页文件名字,默认找哪个文件

           index  index.html index.htm;

       }

       #error_page  404              /404.html;

       # redirect server error pages to the static page /50x.html

       #

       error_page  500 502503 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;

       #}

   }

}

静态网站

1. nginx.conf

server {

       # 定义虚拟主机的端口号,用户访问网站的入口

       listen       80;

       # 填写主机的域名配置,没有域名可以写localhost 或者 _ 也行

       server_name  localhost;

       # 定义网站编码

       charset utf-8;

       #access_log  logs/host.access.log  main;

# nginx的路径匹配规则,任何的nginx请求都会进入如下location的配置去定义的目录找资料

       location / {

          # root 关键词 是定义网页的根目录 这个html是以nginx安装的路径为相对

           root   /www/html;

           index  index.html index.htm;

       }

2.[root@master html]# pwd

/www/html

[root@master html]# ls

index.html

3. nginx

nginx -s reload

Nginx静态资源压缩

nginx支持gzip压缩功能,经过gzip压缩之后的页面图片动态图等这类静态文件,能够压缩为原本的30%甚至更小,用户访问网站的体验会好很多

http://10.35.202.10/cc.txt

nginx.conf

gzip  on;

gzip_http_version 1.1;

gzip_comp_level 4;

gzip_types text/plain application/javascript application/x-javascript text/css

application/xml test/javascript application/x-httpd-php image/jpeg image/gif image/

png;

[root@master html]# nginx -s reload  

Nginx基于ip的多虚拟主机

# ifconfig ens32:1 10.35.202.11 netmask 255.255.255.0 broadcast 10.35.202.255 up

[root@master html]# ifconfig ens32:2 10.35.202.12 netmask 255.255.255.0 broadcast 10.35.202.255 up

[root@master html]# ifconfig | grep "inet 10.35"

       inet 10.35.202.10  netmask 255.255.255.0  broadcast 10.35.202.255

       inet 10.35.202.11  netmask 255.255.255.0  broadcast 10.35.202.255

       inet 10.35.202.12  netmask 255.255.255.0  broadcast 10.35.202.255

添加nginx的配置,添加多个server{}标签,让nginx支持基于ip的多虚拟主机,返回站点内容

1.给nginx添加include包含语法,让其他目录下的配置文件参数,导入到nginx.conf中,这样的写法,能够让nginx每一个配置文件,看起来更简洁,更清晰

修改nging.conf

2.和conf文件夹同目录# mkdir extra # 添加多个基于ip的虚拟主机配置

第一个基于ip的虚拟主机,写在nginx.conf 中,部分代码如下:

   server {

       listen       80;

       server_name  localhost;

       charsetutf-8;

       #access_log  logs/host.access.log  main;

       location / {

           root   /www/10;

           index  index.html index.htm;

       }

3.添加10.35.202.11 虚拟主机的配置

[root@master extra]# cat 11.conf

server{

listen 10.35.202.11:80;

server_name _;

location / {

       root /www/11;

       indexindex.html;

}

}

4. [root@master extra]# vi 12.conf

server{

listen 10.35.202.12:80;

server_name _;

location / {

       root /www/12;

       indexindex.html;

}

}

# nginx -t  检查语法

5.nginx.conf

includeextra/*.conf;

     

6. 准备3个基于ip的站点内容

[root@master ~]# echo " I'm 10 nginx test." > /www/10/index.html

[root@master ~]# echo " I'm 11 nginx test." > /www/11/index.html

[root@master ~]# echo " I'm 12 nginx test." > /www/12/index.html

       

7.重新加载nginx配置  

       nginx -s stop

       nginx

       

Nginx基于多域名的虚拟主机配置

基于多ip的虚拟主机,用的不多。

多域名

-前提条件:

要么配置DNS服务器,将你想用的域名解析到对应的ip

使用hosts文件,进行本地访问测试

1.环境准备,在客户端,修改hosts文件

[root@masternginx-1.8]# cat /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

10.35.202.10 hekang520.com

10.35.202.10 hekang666.cn

10.35.202.10 hekang999.com

server {

       # 定义虚拟主机的端口号,用户访问网站的入口

       listen       10.35.202.10:80;

       # 填写主机的域名配置,没有域名可以写localhost 或者 _ 也行

       server_name  hekang520.com;

       # 定义网站编码

       charsetutf-8;

       #access_log  logs/host.access.log  main;

# nginx的路径匹配规则,任何的nginx请求都会进入如下location的配置去定义的目录找资料

       location / {

          # root 关键词 是定义网页的根目录 这个html是以nginx安装的路径为相对

           root   /www/10;

           index  index.html index.htm;

       }

server {

           listen       10.35.202.10:80;

           server_name  hekang666.cn;

           location / {

           root    /www/10;

           index  index.html index.htm;

}

       

[root@master conf]# curl hekang666.cn && curl hekang520.com

I'm 10 nginx test.

I'm 10 nginx test.

nginx多虚拟主机日志定义

不同的ip

不同的端口

不同的域名

都能够访问到一台计算机的配置,nginx的多虚拟主机的功能配置,利用虚拟主机可以在一台服务器上,运行多个站点配置。

针对每一个虚拟主机都配置好access.log对每一个主机进行方可信息管理

server {

listen 83;

server_name hekang520.com;

access_log logs/test01.log;

location / {

        root /www/test1/;

        indexindex.html index.htm;

     

}

}

[root@ansible extra]# cat test2\.conf

server {

  listen 82;

  server_name _;

access_log logs/test02.log;

  location / {

      root /www/test2/;

      indexindex.html index.htm;

     

}

}

Nginx之Access日志功能

http {

   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  logs/ccaccess.log main;

 }

[root@ansible logs]# ls

access.log ccaccess.log error.log nginx.pid  test01.log test02.log

[root@ansible~]# cat /etc/nginx-1.8

cat: /etc/nginx-1.8: No suchfile ordirectory

[root@ansible~]# cat /opt/nginx-1.8/logs/ccaccess.log

192.168.200.1 -- [31/Jul/2021:01:26:34 -0400] "GET / HTTP/1.1"200 612"-""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36""-"

192.168.200.1 -- [31/Jul/2021:01:26:34 -0400] "GET /favicon.ico HTTP/1.1"404 555"http://192.168.200.30/""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36""-"

关闭日志

access_log off;

Nginx目录浏览功能

提供访问快速访问。

[root@ansible extra]# vi test1.conf

server {

listen 83;

server_name hekang520.com;

charsetutf-8;

access_log logs/test01.log;

location / {

        root /www/test1/;

        #index index.html index.htm;

        autoindex on;

}

}

[root@ansible test1]# pwd && ll

/www/test1

total 4

-rw-r--r--. 1 rootroot  0 Jul31 01:36 dd.sh

-rw-r--r--. 1 rootroot18 Jul31 01:37 hekang.txt

目录下将index.html删除或者修改文件后缀名

image-20210731134645237

Nginx状态信息功能

nginx提供了status模块,用于检测nginx的请求连接信息

这编译安装的时候,添加--with-http_stub_status_module参数,才能使用

nginx -V #检查nginx是否支持conf配置文件,用于检查状态页的功能

支持功能 --with-http_stub_status_module

1.创建一个status.conf,放入extra目录下

include extra/*.conf

创建status.conf文件

[root@ansible extra]# cat status.conf

server {

listen 88;

location / {

stub_status on;  # 开启状态页面功能

access_log off;   # 关闭访问日志

          }

}

Active connections: 4

server accepts handled requests

16 16 23

Reading: 0 Writing: 1 Waiting: 3

server 启动后创建的请求数

accepts handled nginx启动后创建的握手数

requests 表示nginx一共处理了多少次的请求

Reading nginx读取到客户端的headers数量

Writing nginx响应给客户端的headers数量

Waiting nginx处理完毕请求之后,等待下一次的请求驻留的连接数

waiting值=active-(reading+write)

使用ab命令, 对nginx进行压力测试

1.安装ab命令

# yum install httpd-tools -y

-n 请求数量

-c 请求并发数

-k 表示启动keepalive保持连接

# ab -kc 10 -n 100 http://192.168.200.30:83/

Nginx错误日志

错误日志的语法

error_log file level;

日志级别有如下几种

debug

info

notice

warn

error

crit

alert

emerg  级别越来越严重级别越低,记录的越详细

写在

http{

}中     或者单独的主机中

Nginx location匹配

Nginx的locaiton作用是根据用户请求的URI不同,来执行不同的应用。针对用户请求的网站URL进行匹配,匹配成功后进行对应的操作。

nginx.conf server{} location指令如下

location / {

root html;

index index.html index.htm;

}

location = /50x.html {

root html;

}

location [ = | ~|~*|^~ ] url {

#指定对应的动作

}

#正则表达式解释

匹配符匹配规则优先级

= 精确匹配1

^~以某个字符串开头,不做正则2

~*正则匹配3

/blog/ 匹配常规字符串,有正则就优先正则4

/ 通用匹配,不符合其他location的默认匹配5


相关文章
|
6月前
|
存储 缓存 负载均衡
Nginx入门笔记
Nginx入门笔记
206 0
|
缓存 运维 负载均衡
华为大佬秘密撰写的Nginx运维笔记遭人恶意开源,整整638页全泄露
众所周知,Nginx是当下最流行的Web服务器,它具有很强的负载均衡,反向代理,邮件代理以及静态缓存的功能。在提供这些功能的同时,Nginx的性能也极其优秀,可以轻松支持百万、千万级的并发连接,能够为Tomcat、Django等性能不佳的Web应用抗住绝大部分外部流量。那么,Nginx是如何实现高速并发处理呢? 今天小轩就在这里给大家介绍一份“Nginx”的实战笔记,整整638页。话不多说,直击主题。让我们一起来看看这份有着“百万点击播放量”的Nginx笔记吧。 由于篇幅受限,部分内容只能以截图的方式展示出来。需要完整版点击此处获取。 Nginx应用与运维实战 目录
|
1月前
|
网络协议 应用服务中间件 nginx
FFmpeg错误笔记(一):nginx-rtmp-module推流出现 Server error: Already publishing
这篇文章讨论了在使用nginx-rtmp-module进行RTMP推流时遇到的“Server error: Already publishing”错误,分析了错误原因,并提供了详细的解决办法,包括修改nginx配置文件和终止异常的TCP连接。
127 0
FFmpeg错误笔记(一):nginx-rtmp-module推流出现 Server error: Already publishing
|
5月前
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
|
2月前
|
JavaScript Java 应用服务中间件
|
4月前
|
应用服务中间件 Linux nginx
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
《FFmpeg开发实战》书中介绍了如何使用FFmpeg向网络推流,简单流媒体服务器MediaMTX不适用于复杂业务。nginx-rtmp是Nginx的RTMP模块,提供基本流媒体服务。要在Linux上集成rtmp,需从官方下载nginx和nginx-rtmp-module源码,解压后在nginx目录配置并添加rtmp模块,编译安装。配置nginx.conf启用RTMP服务,监听1935端口。使用ffmpeg推流测试,如能通过VLC播放,表明nginx-rtmp运行正常。更多详情见书本。
116 0
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
|
5月前
|
缓存 负载均衡 应用服务中间件
技术笔记:Nginx配置详解
技术笔记:Nginx配置详解
31 0
|
5月前
|
负载均衡 应用服务中间件 开发工具
技术笔记:nginx和keeplive实现负载均衡高可用
技术笔记:nginx和keeplive实现负载均衡高可用
|
6月前
|
负载均衡 算法 前端开发
Nginx笔记
Nginx笔记
50 1
|
Java 应用服务中间件 PHP
[笔记]Nginx使用之作为图片服务器
[笔记]Nginx使用之作为图片服务器
256 0