Nginx Web 基础

一、Nginx介绍

1.概述

Nginx是一个开源且高性能、可靠的http web服务、代理服务

2.Nginx特点

1.高性能,高并发
2.轻量且高扩展性
3.高可靠性
4.支持热部署,nginx可以在运行期间,更新迭代,代码部署
5.大多数公司都在用nginx
6.nginx使用的是epool网络模型
?
1.开源
2.Nginx Web服务器
3.Nginx是俄罗斯一个程序员
4.Nginx还是代理

3.Nginx和Apache之间对比

网络模型:select   性能最低
        poll     性能稍好
        epoll   性能最强
Select: 当用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。
Epoll: 当用户发起一次请求,epoll模型会直接进行处理,效率高效,并无连接限制。
?
Apache :select
Nginx :epoll
       
       

二、安装Nginx

1.yum 安装

1.官网安装https://nginx.org/ (推荐)

官网路径:nginx.org——documentation——installing nginx——packages——RHEL/CentOS——/etc/yum.repos.d/nginx.repo

1.[root@web02 ~]# vim /etc/yum.repos.d/nginx.repo  #所有的配置必须顶格写
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
?
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

2.?如果安装官方源,epel源必须注释掉(避免epel源影响)
cd /etc/yum.repos.d/
gzip epel.repo
3.yum清理缓存
[root@web01 ~]# yum clean all
[root@web01 ~]# yum makecache

4.安装nginx
[root@web01 ~]# yum install nginx -y

5.测试是否安装成功
[root@web01 ~]#nginx -v

6.查看nginx的配置文件
rpm -qc nginx

7.启动nginx
systemctl start nginx
 
?
?
?

2.epel 安装 (将web01的配置同步到web02 (scp /etc/nginx/nginx.conf 172.16.1.7:/etc/nginx))

1.epel镜像地址:https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b113u4zK6

2.下载epel源:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

3.yum清空缓存
[root@web02 ~]# yum clean all
[root@web02 ~]# yum makecache

4.安装nginx
[root@web02 ~]# yum install nginx

web02要使用web01服务器的nginx的配置文件
scp /etc/nginx/nginx.conf root@172.16.1.8:/etc/nginx/nginx.conf

5.启动nginx
systemctl start nginx
?

3.源代码编译安装 https://nginx.org/download/nginx-1.20.1.tar.gz

1、下载源代码包
[root@web03 ~]# wget https://nginx.org/download/nginx-1.20.1.tar.gz

2、解压
    [root@web03 ~]# tar -xf nginx-1.20.1.tar.gz
   
3、进入nginx目录并且设置系统配置参数
[root@web03 nginx-1.20.1]# ./configure --help (查看参数)
[root@web03 nginx-1.20.1]# ./configure --with-http_ssl_module --with-http_v2_module --with-stream

--with-http_ssl_module # 配置HTTPS时使用
--with-http_v2_module # 配置GOLANG语言时使用
--with-stream                # 启用TCP/UDP代理服务

4.开始编译
[root@web03 nginx-1.20.1]# make
?
5、安装
[root@web03 nginx-1.20.1]# make install

现在在命令行输入nginx,报错,需要加入环境变量

6、 加入环境变量
[root@web03 nginx]# vi /etc/profile
export PATH=$PATH:/usr/local/nginx/sbin

[root@web03 nginx]# source /etc/profile
?
7.加入system系统管理(重要:一定要顶格写)
[root@web03 sbin]# vi /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
?
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
?
[Install]
WantedBy=multi-user.target

8、重载system服务并启动
[root@web03 sbin]# systemctl daemon-reload
[root@web03 sbin]# systemctl start nginx
?

错误:
1、./configure: error: the HTTP rewrite module requires the PCRE library.

yum install pcre pcre-devel -y # pcre_devel是拓展包

2、./configure: error: SSL modules require the OpenSSL library.

yum install openssl openssl-devel -y

三、Nginx常用命令详讲

?
nginx    #启动nginx。 等价于systemctl start nginx
?
nginx -s #向nginx发送信号

nginx -s reopen #重启Nginx。   等价于systemctl restart nginx

nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx。 等价于systemctl reload nginx

nginx -s stop #强制停止Nginx服务。 等价于systemctl stop nginx

nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)

nginx -t #检测配置文件是否有语法错误,然后退出

nginx -?,-h #打开帮助信息

nginx -v #显示版本信息并退出

nginx -V #显示版本和配置选项信息,然后退出

nginx -V 2>&1 | sed "s/\s\+--/\n --/g" #模块分行输出,格式化输出

killall nginx #杀死所有nginx进程

systemctl enable nginx  #加入开机自启
  Centos6:
      启动:nginx
           service nginx start
          /etc/init.d/nginx start
      加入开机自启:
          chkconfig nginx on

nginx -T #检测配置文件是否有语法错误,转储并退出

nginx -q #在检测配置文件期间屏蔽非错误信息(静默输出错误信息)
?
nginx -p #指定运行的家目录

nginx -p prefix #设置前缀路径(默认是:/usr/share/nginx/)
?
nginx -e #设置错误日志的路径

nginx -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)

nginx -g directives #设置配置文件外的全局指令(临时设置配置项)
?

 

四、Nginx的配置文件(vi /etc/nginx/nginx.conf)

Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束。

Nginx主配置文件整体分为三块进行学习,分别是CoreModule(核心模块),EventModule(事件驱动模块),HttpCoreModule(http内核模块)

Nginx的进程模型
  角色:
      master :负责监控worker进程
      worker :负责处理HTTP请求
#工作进程启动用户
user nginx;
#启动的worker进程数(worker进程数如果设置成auto,则会跟cpu数量保持一致)
worker_processes auto;
#指定错误日志的路径
error_log /var/log/nginx/error.log notice;
#指定nginx进程的pid文件
pid /var/run/nginx.pid;

#配置事件
events {
#每个worker工作进程的最大连接数
worker_connections 1024;
}

#http内核模块
http {
#包含nginx可识别的文件类型(将其他文件导入进来)
include /etc/nginx/mime.types;
#当nginx不识别文件类型的时候,默认下载(指定nginx处理文件的默认类型)
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 /var/log/nginx/access.log main;
#高效传输(高效读取文件)
sendfile on;
#tcp_nopush on;
#开启长链接(长连接的超时时间)
keepalive_timeout 65;
#开启压缩 (设置gzip压缩)
#gzip on;
#包含其他的配置文件
include /etc/nginx/conf.d/*.conf;

game.conf
# 每一个server都代表一个网站(nginx是支持多个网站)
server {
# 指定当前网站的域名
server_name www.baidu.com;
#字符集
charset utf8;
# 指定当前网站监听的端口
listen 80;
# 指定一个访问路径(配置、控制访问的网站站点)
location / {
# 指定站点目录
root /opt/html;
# 指定默认访问的页面
index index.html;
}

五、案例:搭建小游戏

1.上传代码,解压uzip 解压到/usr/share/nginx

 

 

 

 

 

image-20211026191642018

image-20211026191717781i

 

标签智能推荐:

Ta来了丨2021云上架构运维峰会12月10日线上开启

报名链接 12月10日,2021云上架构与运维峰会,将于13:30在线上正式开启,欢迎大家在官网预约或观看直播。 小编为你总结了本次峰会的五大看点:上手体验云端自动化工具,领取精美礼品阿里云技术大咖,分享云原生时代架构与研发运维体系进化方向云上自动化运维(CloudOps)成熟度模型发布,帮助企业自测CloudOps阶段优秀企业分享云上架构与运维的最佳实践,欢迎相互学习、交流经

抢先报名丨2021云上架构运维峰会将于11月6日在北京举办,五大精彩看点不容错过

11月6日,2021云上架构与运维峰会,将在北京嘉瑞文化中心2层时代厅举办。本次峰会,希望通过分享云上架构与运维的最佳实践,促进业内DevOps与IaC理念的落地,帮助企业“用好云管好云”,释放云的技术红利。云计算所拥有的“软件定义一切”的特性,推动了敏捷弹性、DevOps、智能运维和基础设施即代码等自动化运维趋势。云计算,已经是任何一个运维人员、架构师,甚至是程序员必备的专业技能和知识。小编为你

微服务

一、微服务是什么 二、微服务架构通常而言,微服务架构是一种架构模式,或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务独立运行在其独立的进程之中,服务之间相互协调,相互配合,服务之间采用轻量级的通信机制互相沟通,通常是基于HTTP的RESTfulAPI三、微服务的优缺点优点:  缺点:简而言之就是增加了运维的难度

探究-智能配电运维云平台到底是什么?

GIS、APP的设备巡检管理,及时安排最近运维人员,快速处理故障,控制中心通过移动APP任务工单,指导快速抢修。5、科学调配资源,更经济科学配置云检人员,抢修调度机制高效可行,提高运维效率电能质量监测,发现问题/隐患所在,让系统更安全,最大帮助用户节省用能费用10%以上。关于智能配电运维--易电务:易电务--智慧配电运维知名品牌,专注于电力运维系统远程状态监控、设备运维管理,能耗数据分析,安全监控

传统运维转型智能化运维

ils/104982518引子最近,在运维圈里看到触控科技的萧总提出的一个概念“运维2.0”,学习之后,感触颇多,和几年前腾讯游戏的应用运维团队发起的“运维转型”战略项目神似,那个项目在数年间几乎重塑了“应用运维”在腾讯游戏的定义,而在过程中带动并承载这次转型的具体实现,叫蓝鲸。蓝鲸是腾讯游戏应用运维(ARE)技术生态体系的代号,由正在逐步产品化的六大运维平台和众多应用运维(含devops)、运营

互联网架构模板:“平台”技术

。标准化是运维平台的基础,没有标准化就没有运维平台。如果某个系统就是无法改造自己来满足运维标准,那该怎么办呢?常见的做法是不改造系统,由中间方来完成规范适配。2、平台化传统的手工运维方式需要投入大量人力,效率低,容易出错,因此需要在运维标准化的基础上,将运维的相关操作都集成到运维平台中,通过运维平台来完成运维工作。运维平台的好处有:可以将运维标准固化到平台中,无须运维人员死记硬背运维标准。运维平台

从零开始学架构:开篇-文章大纲

架构模式,基础设施模式架构视图:4+1视图 第三篇UML建模静态模型动态模型行为模型 第四篇需求分析需求工程需求规格用例设计业务架构 第五篇系统设计设计思维:抽象能力,总结能力概念架构初始架构细化架构架构验证 第六篇部署架构逻辑架构物理架构网络划分容量预估 第七篇分层架构三层架构表现层:MVC业务层:Service数据层:DAO多层架构 

SRE实战手册 带你搞定系统稳定性

力提升和组织转型,特别是运维转型的参考标准。在实际落地这套方法论时,大家有很多疑惑:SRE如果不是运维的升级版,那它到底是什么?在稳定性方面,有些公司已经做了很多工作,为什么还是故障频发?引入了SRE,团队的能力应该怎么提升?组织架构应该怎么匹配呢?从基础理论和实践操作两方面入手,一次性解决你心中的困惑,帮助你正确认识SRE,掌握可落地的实践方法。 适合人群:有1年以上运维和开发经验的工

WW大数据平台架构

1.大数据架构说明:1.该大数据平台采用的阿里云服务器,所以在集群部署和运维上会减少很多工作量2.主题的计算引擎采用Spark,部分有Flink3.数据挖掘主要是应用python的一些挖掘框架,模型比如词袋模型和一些常见的nlp算法4.任务调度是自研的诸葛大数据调度平台

运维文档的几点看法

菜鸟运维问:昨晚就改个配置重启一下,怎么搞那么晚?老鸟运维答:考虑方案半个小时,改配置1一分钟,写注释5分钟,写文档半个小时。运维文档的作用,相信大家都非常重视。运维工作与开发工作相较缺少了一些创造性和灵活性,因此运维文档能够更准确的记录运维工作实施中的步骤,更稳定的将运维要注意的相关经验进行记录和传播。可实际上,不管是开发人员还是运维人员,真正愿意写文档的运维人员非常少。往往到了重要运维人员要离