当前位置: 首页 > news >正文

成都网站开发培训机构监控视频怎么做直播网站

成都网站开发培训机构,监控视频怎么做直播网站,wordpress菜单添加,angular做的网站目录 Nginx 开始 概述 安装#xff08;非 Docker#xff09; 配置环境变量 常用命令 配置文件概述 location 路径匹配方式 配置反向代理 实现效果 准备工作 具体配置 效果演示 配置负载均衡 实现效果 准备工作 具体配置 实现效果 其他负载均衡策略 配置动…目录 Nginx 开始 概述 安装非 Docker 配置环境变量 常用命令 配置文件概述 location 路径匹配方式 配置反向代理 实现效果 准备工作 具体配置 效果演示 配置负载均衡 实现效果 准备工作 具体配置 实现效果 其他负载均衡策略 配置动静分离 概念 实现效果 准备工作 403 错误怎么办 效果演示 底层原理 原理说明 master - worker 模式的好处 worker 的数量设置成多少合适 一个请求占用多少个worker_connectionworker 连接数 假设 nginx 有 1 个 master 和 4 个 worker每个 worker 支持的最大连接数是 1024那么 nginx 的最大并发数是多少 Nginx 开始 概述 a简述 Nginx 是一个高性能的 HTTP 和反向代理服务器特点是占用内存少并发能力强有报告表明支持高达 50 000 个并发连接数. b何为正向代理 正向代理代理客户端在浏览器中配置代理服务器. 通过代理服务器进行互联网访问. 例如在中国大陆是不能直接访问到谷歌因此就需要在浏览器中配置代理服务器通过代理服务器来访问谷歌. c何为反向代理 反向代理代理服务器. 客户端无需做任何 配置只需要将请求发送给反向代理服务器呦反向代理服务器将请求发送给真实服务器暴露代理服务器地址隐藏真实服务器 IP 地址. 例如客户端要给 8080 端口的 tomcat 发送请求可以不直接访问 tomcat出于安全考虑而是通过将请求发送给 9090 的代理服务器再由 9090 的代理服务器将请求转发给 8080 端口的 tomcat. d安装直接通过 docker 安装记得挂载配置文件数据卷. 安装非 Docker a官网下载nginx: download b将下载好的文件上传到终端 Ps想了一下又把文件移到了服务器的 ~/apps 目录下.  c解压 tar -zxvf nginx-1.26.1.tar.gz d下载 nginx 运行环境 依次运行以下命令 yum -y install gcc gcc-c autoconf automake makeyum -y install openssl openssl-devele进入到刚解压的文件中进行基本配置输入如下命令 ./configure --prefix/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module配置configure --prefix代表安装的路径--with-http_ssl_module安装ssl--with-http_stub_status_module查看nginx的客户端状态 f在解压文件的目录中可以观察到多出了一个 makefile 文件 接着输入以下命令 #编译安装nginx make make install Ps上一步编译如果出现了错误 “make: *** No rule to make target build, needed by default. Stop”.解决如下 安装配置yum -y install make zlib-devel gcc-c libtool openssl openssl-devel重新./configure ./configure 编译make make install  f进入到安装目录上面 --prefix/usr/local/nginx 配置的就是安装目录 cd /usr/local/nginx/ g接着进入sbin目录下执行以下命令启动 nginx h最后直接输入服务器的 ip 就可以访问了只输入服务器 ip默认走 80 端口 Ps如果访问不了就去关闭一下防火墙吧~ 配置环境变量 acd /etc 进入到 etc 目录中 b找到 profile 文件 c添加如下信息 # Nginx 的安装目录 export NGINX_HOME/usr/local/nginx # Nginx 环境变量配置 export PATH${NGINX_HOME}/bin:${NGINX_HOME}/sbin:$PATH d刷新环境变量 source /etc/profile e验证切换到任意目录下输入如下命令 常用命令 Note使用的前提是必须先进入到 /usr/local/nginx/sbin 目录中配置了环境变量可以忽略之后都演示配置后的 a查看 nginx 版本 nginx -v b停止 nginx nginx -s stop c启动 nginx nginx d重新加载 nginx nginx -s reload 将来我们会经常修改 nginx 的配置文件每次修改后就需要重新加载 ngxin 才能生效. 配置文件概述 anginx 配置文件位置 /usr/local/nginx/conf/nginx.conf bnginx 默认配置文件内容去掉注释 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;}}} cnginx 配置文件三部分组成 1全局块从配置文件开始到 events 块之前的内容.  主要用来设置影响 nginx 服务器整体运行的配置指令例如 worker_processes 1; worker_processes 值越大可以支持的并发处理量越大. 如下 worker_processes 1; # 服务器并发处理能力值越大并发能力越强受自身配置限制2events 块主要用来影响 nginx 服务器与用户的网络连接例如 worker_connections 1024; 表示支持的最大连接数. 如下 events {worker_connections 1024; #最大连接数1024个需灵活配置 } 3http 块nginx 中配置最频繁的地方http 块中包括 http 全局块、server 块. http 全局块如下 http {include mime.types; # 文件扩展名与文件类型映射表default_type application/octet-stream; # 访问到未定义的扩展名的时候就默认为下载该文件sendfile on; # 日志自定义keepalive_timeout 65; # 超时时间 http 块中的 server 块如下 server {listen 80; # 目前监听的端口号server_name localhost; # 主机名称 server 块中又包括 server 全局块 和 location 块.  全局 server 块如下 server {listen 80; # 目前监听的端口号server_name localhost; # 主机名称 location 块如下 location / { #表示默认首页root html;index index.html index.htm; root 指定了服务器的根目录上述 root html 表示 nginx 安装目录的路径下的 html 目录以 nginx 安装目录为相对路径. location 路径匹配方式 语法如下 location { | ~ | ~* | ^~ } uri {# ... } a表示不含正则表达式的 uri 要求请求字符串和 uri 严格匹配如果匹配成功就停止继续向后匹配并立即处理该请求. 例如如下 location /exact-match {# 配置处理精确匹配的请求proxy_pass http://backend_server; }只有请求 URI 完全是 /exact-match 时才会匹配这个 location 块其他类似的请求如 /exact-match/ 或 /exact-match123 不会匹配。 b~用于表示 uri 包含正则表达式并且区分大小写. 例如如下 location ~ \.php$ {# 配置处理所有以 .php 结尾的请求例如 /index.php 或者 /foo.phpfastcgi_pass php_backend; }c~*用于表示 uri 包含正则表达式并且不区分大小写. d^~不含正则表达式的 uri要求 Nginx 服务器扎到表示 uri 和请求字符串匹配度最高的 location 后立即使用 location 处理请求而不再使用 location 块中的正则 uri 和请求字符串做匹配. location ^~ /static/ {# 配置处理所有以 /static/ 开头的请求root /data/static; }例如 static/css/styles.css 或者 /static/js/app.js 配置反向代理 实现效果 打开浏览器在浏览器地址栏中 输入 env-base:9000/aaa 跳转到 env-base:8080tomcat8080 的页面 输入 env-base:9000/bbb 跳转到 env-base:8081tomcat8081 的页面 Psenv-base 为配置 nginx 的服务器 ip 准备工作 a准备两个 tomcat 服务器一个 8080一个 8081 这里使用 docker直接运行以下命令 # 1.先简单启动 docker run --name tomcat -p 8080:8080 -d tomcat:8.0# 2.在宿主机中创建将来容器的映射文件 mkdir -p ~/test/tomcat8080 mkdir -p ~/test/tomcat8081# 3.将容器中的文件拷贝到宿主机 docker cp tomcat:/usr/local/tomcat/webapps/ ~/test/tomcat8080 docker cp tomcat:/usr/local/tomcat/webapps/ ~/test/tomcat8081# 4.删除旧的容器 docker rm -f tomcat# 5.启动新容器 docker run --name tomcat8080 -p 8080:8080 \ -v ~/test/tomcat8080/webapps:/usr/local/tomcat/webapps \ -e TZAsia/Shanghai \ -d tomcat:8.0docker run --name tomcat8081 -p 8081:8080 \ -v ~/test/tomcat8081/webapps:/usr/local/tomcat/webapps \ -e TZAsia/Shanghai \ -d tomcat:8.0正常访问 b由于将来访问 env-base:8080 或者 env-base:8081 实际上都是访问 webapps 下的目录因此为了演示不同效果就在前面创建的 tomcat8080 和 tomcat8081 的 webapps 目录下创建两个不同的文件aaa、bbb和两个不同的 HTMLa.html 和 b.html ~/test/tomcat8080/webapps/aaa/a.html~/test/tomcat8081/webapps/bbb/b.html 效果如下 具体配置 编辑 nginx 配置文件进行反向代理配置 server {listen 9000;server_name env-base;location ~ /aaa/ {proxy_pass http://127.0.0.1:8080;}location ~ /bbb/ {proxy_pass http://127.0.0.1:8081;}} 使用 nginx -s reload 命令重新加载 nginx 效果演示 e上述原理 location ~ /aaa/ {             proxy_pass http://127.0.0.1:8080;         } 由于 ~ /aaa/ 是正则表达式表示只要路径中含有 /aaa/ 就会被代理 例如输入 env-base:9000/aaa/a.html 就会被代理成 127.0.0.1:8080/aaa/a.html可以正常访问例如输入 env-base:9000/abc/aaa/a.html 就会被代理成 http://127.0.0.1:8080/abc/aaa/a.html404 错误 配置负载均衡 实现效果 浏览器地址栏输入地址 http://env-base:9000/ccc/c.html 实现负载均衡效果平均分配到 8080 和 8081 端口中. 准备工作 准备两个 tomcat 服务器一台 8080一台 8081.在上一章配置反向代理我们已经准备好了两个 tomcat 容器路径分别为 ~/test/tomcat8080、~/test/tomcat8081在两个 tomcat 中 webapps 目录中创建名称是 ccc 文件夹在 ccc 文件夹中创建 c.html 用于测试. tomcat8080 访问如下 tomcat8081 访问如下 具体配置 实现效果 默认按照轮询的策略分配 第一次 第二次 其他负载均衡策略 默认负载均衡的策略是轮询除此之外还有其他策略如下 aweight 权重 另外可以通过 weight 来控制需要负载均衡的权重.  权重越大访问到的概率越大. 比如将权重都配置为 1表示两者访问到的概率相同. upstream group1 {server 192.168.0.12:80 weight1;server 192.168.0.12:81 weight1;}server {listen 80;server_name localhost;default_type text/html;location /a {proxy_pass https://group1;}} 或者将 80 端口的权重改为 10让其访问到的概率大一些. upstream group1 {server 192.168.0.12:80 weight10;server 192.168.0.12:81 weight1;}server {listen 80;server_name localhost;default_type text/html;location /a {proxy_pass https://group1;}} bip_hash 每个请求按访问 ip 的hash 结果分配这样子访客固定访问一个后端服务器可以解决session问题 举个例子 A用户固定ip第一次访问到8080 tomcat那么后面就都是访问到这台机器. upstream myserver {ip_hash;server 127.0.0.1:8080;server 127.0.0.1:8081; }cfair 根据后端响应时间来分配请求处理时间短的优先分配. upstream myserver {server 127.0.0.1:8080;server 127.0.0.1:8081;fair; }配置动静分离 概念 为了加快网站的解析速度可以把动态页面和静态页面由不同的服务器来解析加快解析速度. 实际上就是将来客户端会先访问 nginx如果要访问的是静态资源就会代理到对应放静态资源的 服务器如 html、css、js 如果是动态资源就会代理到对应放动态资源的服务器如 jsp、sevlet 另外这也是一种可以直接通过 url 访问服务器上对应的静态资源的方法如 图片、html、css. 实现效果 在浏览器中输入地址 http://env-base/image/1.png 访问到服务器上 ~/data/image/1.png 图片 在浏览器中输入地址 http://env-base/www/index.html 访问到服务器上 ~/data/www/index.html 页面. 准备工作 在服务器上的  ~/data/image/ 目录下准备一个 1.png 图片. 在服务器上的 ~/data/www/ 目录下准备一个 index.html 页面. d具体配置 重启 nginx.  1 location /www/ {         root  /root/data/; } 表示如果将来浏览器中输入的 uri 是 /www/ 则匹配服务器上 /root/data 目录下的 /www/ 目录中. 2) autoindex on 表示开启自动显示索引.  403 错误怎么办 a先提一嘴如果出现了 403 错误是因为 静态资源不可以访问在某个家目录下如 /root 也就是 ~/ 目录下. 可以在 nginx.conf 文件中指定用户 # user nobody 修改为  user root; # 设置为 root 用户 b也有可能是权限不足通过 chmod 755 -R 所在文件夹 即可提升权限解决问题. c如果还是不行可能是操作系统设定 SELinux这是 Linux 系统的选项为了保护服务求防止文件被随意获取的机制. 通过 getenforce 就可以查看到默认是开启的Enforcing需要改成 disabled 状态 要想要永久关闭就需要进入配置文件 /etc/sysconfig/selinux 将 SELINUXenforcing 改为SELINUXdisabled 如下 重启机器这时候因该就没问题了. 效果演示 autoindex on 的效果如下 访问到具体图片 以及 html 底层原理 原理说明 nginx 处理请求是以 master - work 的方式如下图 当 nginx 服务器接收到请求之后就会有 master 进程分发给 worker 进程这里类似于于master 给多个 worker 通知说 “我这里有资源了你们快来”然后抢到的那个 worker 进程就会来处理这个请求接着有以下情况 如果请求的是静态资源那么 worker 就直接从当前服务器上取到并返回即可.如果请求的是动态资源需要访问类似于 Tomcat 服务器去数据库中取数据那么 worker 进程就会通过配置的反向代理去 Tomcat 服务器上取资源. master - worker 模式的好处 a可以使用 nginx -s reload 热部署. 如果有一个 worker 正在处理请求那么此时我们就不希望通过 重启 nginx 的方式来重新加载配置.  而如果有 多个worker此时只有一个 worker 正在处理请求那么就可以让其他 worker 来加载新的配置然后 master 接收到有新的请求时就只给加载了新的配置文件的 worker 进行通知即可. b多进程隔离. 每一个 worker 是独立的进程如果其中一个 worker 出现问题其他  worker都是独立的继续进程争抢实现请求过程.  不会像一个进程的下的多个线程其中一个线程出了问题其他线程可能都会遭殃. worker 的数量设置成多少合适 a在配置文件中可以这样配置 worker 的数量. # 设置 worker 数量 worker_process 4; # worker 绑定 cpu (4 worker 绑定 4 个 cpu) worker_cpu_affinity 0001 0010 0100 1000# worker 绑定 cpu (4 worker 绑定 8 个 cpu 中的 4 个) worker_cpu_affinity 00000001 00000010 00000100 00001000 b设置成多少合适 Nginx 和 redis 类似都采用了 io 多路复用机制每个 worker 都是一个独立的进程但是每个进程只有一个主线程通过异步非阻塞的方式来处理请求. 每个 worker 的线程可以把 cpu 的性能发挥到极致所以 worker 的数量 和 服务器的 cput 数量相等最合适.  设置少了会浪费 cpu设置多了会造成 cpu 频繁上下文切换带来的损耗. 一个请求占用多少个worker_connectionworker 连接数 2 或者 4 个原因如下 2个如果访问静态资源只需要 client 给 worker 发送请求worker 返回静态资源即可. 4个如果访问动态资源例如 Java 代码也就是 Tomcat 服务器那么不止需要 client 给 worker 发送请求还需要 worker 去请求 tomcat.  这一来一回加起来就是 4 个连接. 假设 nginx 有 1 个 master 和 4 个 worker每个 worker 支持的最大连接数是 1024那么 nginx 的最大并发数是多少 a静态资源的最大并发数是worker_connections * worker_processes / 2 对应上述就是 1024 * 4 / 2 b动态资源的最大并发数是worker_connections * worker_processes / 4. 对应上述就是 1024 * 4 / 4
http://www.w-s-a.com/news/687175/

相关文章:

  • 网站分享对联广告网站结构的类型
  • 三维家是在网站上做还是在app上北京网站建设 专业10年
  • 模拟网站建设网站建设认准猪八戒网
  • godaddy网站建设教程微信手机网站搭建
  • 网站建设 商城淄博网站制作哪家好
  • 廊坊手机网站团队国际贸易进口代理公司
  • 运用django做网站网站建设问题及解决办法
  • 商丘企业网站服务c mvc 网站开发
  • 太仓建设工程网站广州seo排名外包
  • 成都的教育品牌网站建设做网站不给提供ftp
  • 建站行业市场人力管理系统
  • qq钓鱼网站在线生成器google关键词搜索工具
  • 化妆网站模板移动网站建设模板
  • 欢迎访问语文建设杂志网站网站蓝色配色
  • 最新网站发布重庆城乡建设部网站首页
  • 网站建设费用高鄂尔多斯seo
  • dw做网站怎么发布网站无后台可以上框架
  • 网络公司如何建网站网站的建设需要多少钱
  • 代刷网站推广快速泉州网页定制
  • 网站优秀网站地址做宣传册的公司
  • 苏州高端网站建设咨询wordpress云图插件
  • 河北省建设厅网站重新安装优秀中文网页设计
  • 如何在腾讯云做网站开源站群cms
  • 公司网站建设的意义网易做网站
  • 网络营销案例分析与实践搜外seo
  • 手机建网站挣钱吗wordpress面包屑
  • 淘客做网站怎么备案网站开发工具的是什么
  • 提供大良网站建设郑州网站建设网站开发
  • 邢台做wap网站价格wordpress评论滑动
  • 绝味鸭脖网站建设规划书江苏建设人才网 官网