nginx服务器
创始人
2024-09-25 18:46:57
0

一、nginx基础

1、nginx概述

nginx开源的,是一款高性能轻量级的web服务软件。稳定性高,而且版本迭代比较快(修复bug的速度比较快,安全快) 消耗系统资源很低,http的请求,并发连接,单台服务器可以支持3万-5万的并发请求。(前提系统资源全部分配给nginx使用)

单个节点nginx一般支持2万个并发

1、并发量不会那么高

2、资源需要分配给其他程序运行

3、有分布式集群分担,不需要支持那么多并发

2、nginx的功能介绍

1、静态文件服务:静态页面,可以直接提供静态文件服务,html css jsp 处理静态页面的响应速度很快,效率也很好。

2、代理功能:正向代理,反向代理。可以实现负载均衡,高可用和故障转移

3、动态内容处理:nginx并不能直接的处理动态请求,可以通过中间件把动态请求转发给后端服务器

例如:nginx PHP mysql   php就是中间件

4、支持加密的http就是https

5、可以实现重定向

6、虚拟主机,一个nginx可以配置多个域名和站点

7、nginx自带缓存机制

8、性能可扩展,处理能力可以随时调整

3、nginx的应用场景

静态页面

转发动态请求

反向代理,负载均衡

缓存服务

4、编译安装nginx

参考之前的

唯独在压缩包下的configure目录里的配置文件新增一些插件

./configure --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_ssl_module \             支持https的加密功能ss/tls --with-http_v2_module \              支持http2.0协议 --with-http_realip_module \          支持nginx获取客户端的真是ip地址 --with-http_stub_status_module \     支持nginx获取访问状态信息的功能 --with-http_gzip_static_module \     支持页面压缩功能 --with-pcre \                        支持pcre库 --with-stream \                      支持4层代理的模块 --with-stream_ssl_module \           支持对tcp连接的加密 --with-stream_realip_module          支持从代理协议中获取客户端的真实ip地址 

 编译安装

make -j 4 && make install	#第一个make:编译;第二个make install:安装 #make -j 4 启动4个CPU进行处理

5、对/usr/local/nginx目录下的四个目录的解释

/usr/local/nginx目录下的四个目录的解释

conf :配置文件目录,主配置文件nginx.conf

html :工作目录:50x.html默认的访问操作打开的页面,index.html

logs :日志目录:访问日志、报错日志

sbin :二进制启动脚本nginx

6、nginx常用命令

1、nginx -t 检测配置文件的语法是否正确

2、nginx -v 显示nginx的版本

-V 显示版本和配置项

3、nginx -s 信号 stop 关闭 reload 重新加载,如果更改了配置文件,nginx -s reload无需重启服务。

7、nginx.conf 配置文件内容

绝对路径/usr/local/nginx/conf/nginx.conf

#user  nobody; 默认的程序用户就是nginx,这里可以保持注释无需修改 worker_processes  1; #工程进程数,设置成服务内核数的2倍(一般不超过8个,超过8个反而性能会降低4个,一般1-2个) pid       /usr/local/nginx/run/nginx.pid; #pid 文件的位置 events {     worker_connections  1024; } #与worker_processes一起看,决定了nginx能够处理的连接数和worker_processes 的数值相乘 #处理进程的过程必然涉及配置文件和展示页面,也是涉及打开文件的数量 #linux默认打开的文件数/etc/security/limits.conf修改限制,否则无论怎么修改都没用 # * soft nproc 65535 能打开的进程最大数的软限制是65535,65535是最大数 # * hard nproc 65535 能打开的进程最大数的硬限制是65535,65535是最大数 # * soft nproc 65535 进程打开文件数的最大值65535 # * hard nofile 65535 配置要生效,只能重启,这是系统初始化的一个环节   http { #http转发和处理http请求,处理静态页面,设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置     include       mime.types;     #文件扩展名与文件类型的映射表,nginx能够打开的文件和支持的文件类型     default_type  application/octet-stream; #默认支持的文件类型 .html .htm .js .jsp .php       #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 访问日志的格式,error.log也是这个格式     #access_log  logs/access.log  main; #默认的访问日志的存放路径     sendfile        on; #支持文件发送或者下载     #tcp_nopush     on; #默认就是异步非阻塞模式功能        #keepalive_timeout  0;     keepalive_timeout  65; #连接保持的时间,nginx默认65s     #gzip  on; #gzip模块,设置是否开启页面压缩的功能   server {  #在http下面,开启web服务的模块         listen       80;  #设置nginx默认的监听端口         server_name  localhost; #配置站点域名         #charset koi8-r; #网页默认字符集         #access_log  logs/host.access.log  main;                  location / {  #网页匹配的工作目录的地址和支持的打开页面的文件类型             root   html;  #家目录,nginx工作目录的家目录,就是/usr/local/nginx/html 拼接  #alias也是指匹配nginx的工作目录 需要绝对路径 alias /usr/local/nginx/html      重点:root和alias匹配工作目录的区别   root 的匹配模式是拼接   root 的工作目录访问的url /xy102   location /xy102   /opt/test1   拼接/opt/test1/xy102      alias 匹配nginx的工作目录,路径是绝对路径   location /xy102   alias /opt/test1/xy102;决定路径      root可以写在server模块,也可以在http也可以在location中   alias 只能写在http模块当中的server模块当中的location模块里面   alias匹配工作目录不能使用重定向功能

总结:

全局模块(3个)

worker_processes 1; #指定进程数

events模块决定处理的连接数

stream 四层代理模块

http模块 http转发和处理http请求,处理静态页面,设置代理(正向代理,反向代理),缓存,定义日志格式,重定向配置。

在http模块当中 包含server块, http可以有多个server模块(一个server模块就等于一个主机)

在server模块当中包含location模块,在server当中可以有多个location

二、实验

nginx服务的ip地址为192.168.10.20

1、统计访问状态

使用nginx -V 检查 开启访问状态统计模块

修改配置文件,在server模块下新增location

 

使用浏览器访问192.168.10.20/status

Active connections: 1  #当前活动的连接数 server accepts handled requests #表示已经处理的连接数  35 35 35  #三个数字从左往右:已经处理的连接数 成功的建立连接的次数 已经处理的请求数 Reading: 0 Writing: 1 Waiting: 0 Reading 表示服务端正在从客户端读取请求是的数据 Writing 表示服务端正在把响应数据发送给客户端 Waiting 表示有连接处于空闲状态,等待新的请求

2、对访问进行控制,基于密码的授权进行访问控制

先安装一个工具 httpd-tools ,htpasswd的工具

yum -y install httpd-tools

使用htpasswd创建一个文件passwd.db 用于保存用户的信息,同时创建一个用户zlm,按照提示信息输入密码。

tpasswd -c /usr/local/nginx/passwd.db zlm chown nginx passwd.db  #修改所有者 chmod 400 passwd.db    #修改只读权限

 修改配置文件

使用浏览器访问192.168.10.20/ ,提示输入输入用户名与密码

3、 基于客户端的访问控制 ip地址来进行控制

限制制定的ip进行访问

在server模块下的默认location下添加一个控制规则

 使用curl访问192.168.10.20/ ,显示403用户请求禁止访问

4、 基于域名的nginx主机

在server模块下配置站点域名

在/etc/hosts做一个本地映射

index.html主页内容  

使用curl访问域名,显示主页内容

 

5、 基于域名nginx 实现多个域名

在多个域名的情况下端口可以是一样的

在上一个实验的基础上重现定义一个server

在/etc/hosts做一个本地映射 ,一个ip地址可以映射多个域名,域名可以写在一行,也可以换行

 index.html主页内容  

使用curl对不同的域名进行访问

6、基于ip地址的虚拟主机

在多个域名的基础上修改

增加一个虚拟网卡192.168.10.100

监听的ip地址需要修改为虚拟网卡的地址

使用浏览器访问不同的ip 192.168.10.100 和192.168.10.20 

7、 基于端口实现多个虚拟主机

端口号要在1-65535之间

使用浏览器进行访问不同的端口

8、使用多个配置文件

在http模块下新增一行

 在/usr/local/nginx/conf.d创建test1.conf文件

添加内容

 使用浏览器访问888端口

 

9、查看日志信息 

相关内容

热门资讯

8分钟辅助!WPK到底有透视(... 1、完成WPK的残局,帮助玩家取得所有比赛的胜利,直登高塔的教程。2、多达1000个不同的游戏攻略,...
科技新动态!微扑克教你用ai辅... 【福星临门,好运相随】;科技新动态!微扑克教你用ai辅助(辅助)皮皮跑胡子辅助器最新版(有挂点拨);...
什么情况下会中木马病毒 中木马病毒通常是因为用户不慎点击了含有恶意代码的链接或邮件附件,或者下载并安装了带有病毒的软件。中木...
苹果语音转文字功能在哪里设置(... 在iPhone上,进入“设置”-“通用”-“键盘”,开启“启用听写”即可使用语音转文字功能。在文本输...
入侵路由器能做什么 入侵路由器可能导致个人信息泄露、网络流量被监控、恶意软件传播、网络服务中断等安全风险。应加强防护,定...
打印机脱机怎样重新连接 将打印机重新连接至电脑,确保电源已打开。在电脑上打开控制面板,找到“设备和打印机”,右键点击目标打印...
小米互传怎么传应用-小米互传传... 在小米互传中,选择“应用游戏”,然后找到想要传输的应用,点击“发送”按钮,选择接收设备,等待传输完成...
网御防火墙什么牌子好 网御防火墙的牌子有很多,其中一些知名的品牌包括:思科(Cisco)、华为(Huawei)、中兴(ZT...
第三方插件!wpk微扑克智能辅... 第三方插件!wpk微扑克智能辅助(有辅助)同城游戏辅助神器(有挂向导);AI智能教程细节普及德州是一...
苹果手表怎么关机开机(Appl... 关机:长按侧边按钮,滑动“关机”滑块。开机:长按侧边按钮直至看到苹果标志。定期重启可提升性能。苹果手...