nginx学习日记

article/2025/10/16 22:04:59

nginx介绍

1.什么是nginx?

nginx就是c语言开发的一个高性能HTTP和反向代理Web服务器以及电子邮件(IMAP/POP3)代理服务器
nginx是轻量级的。

2.什么是反向代理?

代理服务可以简单的分为正向代理和反向代理。
正向代理:就是代理服务器替代访问方(用户)去访问目标服务器(服务器)是站在浏览器端来说的
例如:上一个外网,搭一个VPN,那么VPN和浏览器就是在同一个阵营
正向代理
反向代理: nginx代替tomcat服务器接收请求 是站在服务器端说的
例如:访问百度,那么百度的服务器不止一个,因此就用一个反向代理服务器,让此服务器去把请求分配给其他的百度服务器
反向代理
负载均衡: 把客户端的请求分摊给多台服务器上执行,减轻每台服务器的压力。
动静分离: 将静态的资源放到反向代理服务器,节省用户的访问时间

Web服务器分2类:

  • web应用服务器,如:
    • tomcat
    • resin
    • jetty
  • web服务器,如:
    • Apache 服务器
    • Nginx
    • IIS

区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。
并发:web服务器的并发能力远高于web应用服务器。

3.安装和启动?

安装步骤:
下载nginx:
官方网站:http://nginx.org/
1)安装C语言环境

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

2)解压安装包

tar -zxvf nginx-1.10.0.tar.gz

3)设置安装目录
cd /usr/upload
./configure --prefix=/usr/local/nginx
4) 编译并安装
make && make install
目录结构:

├── client_body_temp         # 临时目录
├── conf                     # Nginx所有配置文件的目录
│   ├── nginx.conf                 # Nginx主配置文件
├── fastcgi_temp             # fastcgi临时数据目录
├── html                     # Nginx默认站点目录
│   ├── 50x.html                   # 错误页面优雅替代显示文件,例如当出现502错误时会调用此页面
│   └── index.html                 # 默认的首页文件
├── logs                     # Nginx日志目录
│   ├── access.log			      # 访问日志文件
│   ├── error.log			      # 错误日志文件
│   └── nginx.pid			      # pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp               # 临时目录
├── sbin                     # Nginx命令目录
│   └── nginx			          # Nginx的启动命令
├── scgi_temp                # 临时目录
└── uwsgi_temp               # 临时目录

5)启动和关闭
在nginx目录下有一个sbin目录,sbin目录下有一个nginx可执行程序
cd /usr/local/sbin
启动:./nginx
关闭: ./nginx -s stop
重启: ./nginx -s reload #可以不关闭nginx的情况下更新配置文件
添加:如何查看nginx启动了?
在/usr/local/nginx/logs查看是否有nginx.pid;有了就是启动了,没有就是没有启动
或者使用ps -ef | grep nginx
或者直接在浏览器中输入,虚拟机的IP地址即可 如:http://192.168.164.127/
出现一下界面安装成功:
安装成功图片
6)nginx.conf配置文件介绍

完整配置:

#user  nobody;
#工作进程
worker_processes  1;events {#连接池连接数worker_connections  1024;
}
#请求方式
http {#媒体类型include       mime.types;#默认媒体类型 二进制default_type  application/octet-stream;#上传文件sendfile        on;#超时时间keepalive_timeout  65;#gzip  on;#服务器配置server {#监听端口listen       80;#监听域名server_name  localhost;#请求头信息proxy_set_header X-Forwarded-Host $host;proxy_set_header X-Forwarded-Server $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#请求映射规则,/代表所有请求路径location / {#请求转发地址#root html;  文件夹proxy_pass http://manage.powershop.com:8080;#欢迎页#index  index.html index.htm;#转发连接超时时间proxy_connect_timeout 600;#转发读取超时时间proxy_read_timeout 600;}}
}

4 Nginx代理Tomcat服务器

1 在linux中安装两台tomcat
直接输入命令的时候是无法启动的,需要分配权限
进入bin目录分配执行权限:

chmod 777 startup.sh
chmod 777 catalina.sh

1)解压两个tomcat到/usr/java,分别命名为tomcat1,tomcat2

2)修改tomcat的配置文件server.xml,将端口进行修改:
在这里插入图片描述
3)将项目/webapps/test/index.html分别发布到两个tomcat中并测试

<h1>这是tomcat-1</h1>

2、nginx的6种负载均衡策略:

负载均衡策略说明解释
轮询默认
weight权重方式server http:x.x.x.x:p weight=5 权重级别高的,被访问到的几率就高
ip_hash依据ip分配方式根据客户端ip分配 例如:(192.168.8.128)%2
least_conn按连接数根据Tomcat连接数分配
fair按响应时间
url_hash依据URL分配根据url分配

3、 如何防止session丢失?
服务器中有一个session.浏览器里有一个cookie,用户访问浏览器的时候.服务器创建一个session发给浏览器存储到了cookie之中
session复制:多台tomcat复制时,非常耗时
session特点: 1 )key value形式; 2) 可以设置过期时间
方法一:保证一个ip地址永远的访问一台tomcat服务器,就不存在session共享问题了(只支持linux)

      即:upstream中添加 ip_hash;

方法二:session的共享

      一种使用tomcat广播机制完成session的共享(只支持windows,不推荐的方式)一种使用redis服务器的方式完成session的共享(推荐的方式)

session丢失解决

4、代理一台tomcat(反向代理)
修改nginx/conf/nginx.conf文件:
location / { root html; proxy_pass http://127.0.0.1:8080; }
5、代理多台tomcat(负载均衡)
1)在http节点上添加一个upstream
2)修改location /下的反向代理

upstream myTomcats{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://myTomcats;
}
# location ~* .(gif|jpg|png|jpeg)$ {
# root /usr/upload/images;
# }
}

5 动静分离

1)创建静态资源
在虚拟机中/usr/upload/新建images文件夹,并上传图片
2)配置nginx的nginx.conf

	location ~* \.(gif|jpg|png|jpeg)$ {root /usr/upload/images;}

3)在浏览器中输入对应的linux虚拟机网址,找到对应的路径即可访问:
例如

http://192.168.164.127/test.jpeg

http://chatgpt.dhexx.cn/article/nH8yfRKa.shtml

相关文章

Nginx学习笔记总结:初次认识 Nginx

2022 年 4月 16 日 百思不得小赵 &#x1f50d;点此进入博客主页 —— 新时代的农民工 &#x1f64a; —— 换一种思维逻辑去看待这个世界 &#x1f440; 今天是加入CSDN的第1141天。觉得有帮助麻烦&#x1f44f;点赞、&#x1f340;评论、❤️收藏啦。 概述 Nginx是一个高性能…

Nginx服务器学习

学习思维导图 Nginx服务架构说明 Nginx采用master-worker的架构&#xff0c;和tomacat的按路径匹配一个节点线程进行处理方式不同&#xff0c;Nginx是直接让worker来先抢夺资源也就是请求&#xff0c;然后在去处理&#xff0c;每个worker保持为一个独立的进程。 Nginx服务的实际…

nginx学习,看这一篇就够了

nginx学习&#xff0c;看这一篇就够了&#xff1a;下载、安装。使用&#xff1a;正向代理、反向代理、负载均衡。常用命令和配置文件,很全_冯安晨-CSDN博客_nginx 代理 文件下载文章目录前言一、nginx简介1. 什么是 nginx 和可以做什么事情2.Nginx 作为 web 服务器3. 正向代理4…

Nginx学习+安装

目录 一、Nginx介绍 二、Nginx下载和安装 1.安装过程 三、了解目录结构 小知识点&#xff1a;树形结构目录展示 四、常用命令 五、配置文件结构 六、具体应用 1.部署静态资源 2.反向代理 了解正向代理 反向代理 3.负载均衡 重中之重&#xff1a;更详细的内容可以访…

Nginx学习与安装

Nginx学习与安装 一、Nginx介绍二、Nginx 安装2.1 安装 pcre-8.44.tar.gz2.2 安装openssl与zlib2.3 安装nginx2.4 Nginx 命令 Nginx 配置文件 一、Nginx介绍 是一个高性能的HTTP和反向代理服务器&#xff0c;同时也是一个IMAP/POP3/SMTP 代理服务器。Nginx以事件驱动的方式编写…

手把手学习nginx基本配置

相信很多人都听过nginx&#xff0c;这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢&#xff1f;可能很多人未必了解。 说到反向代理&#xff0c;可能很多人都听说&#xff0c;但具体什么是反向代理&#xff0c;很多人估计就不清楚了。摘一段百度百科上的描…

Nginx学习整理|入门记录

目录 1. Nginx概述 1.1 Nginx介绍 1.2 Nginx下载和安装 1.3 Nginx目录结构 2. Nginx命令 3. Nginx配置文件结构 4. Nginx具体应用 4.1 部署静态资源 4.2 反向代理 4.3 负载均衡 1. Nginx概述 1.1 Nginx介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件…

nginx学习总结

简介 静态资源服务器&#xff0c;反向代理&#xff0c;负载均衡等&#xff0c;这些场景下&#xff0c;nginx无处不在。但是本人是在解决单个tomcat承受不了并发量的前提下&#xff0c;才走进的nginx。以下都是个人的总结&#xff0c;如果有不对的话&#xff0c;可以指出来&…

Nginx入门学习

Nginx快速入门 Nginx快速入门&#xff0c;了解什么是Nginx&#xff0c;正向代理&#xff0c;反向代理&#xff0c;负载均衡的概念&#xff0c;学会Nginx的安装和常用的命令&#xff0c;并且能实际场景应用Nginx 什么是Nginx&#xff1f; Nginx (engine x) 是一个高性能的HTTP和…

Nginx学习

目录 1. Nigix简介1.1 什么是 Nginx?1.2 Nginx的作用&#xff1f;1.3 正向代理和反向代理1.4 Windows上安装Nginx1.5 Linux上安装Nginx 2. Nginx常用命令docker 部署nginx 1. Nigix简介 1.1 什么是 Nginx? Nginx是一个高性能的HTTP和反向代理web服务器&#xff08;随着客户…

Nginx教程(小白必看,看了必会,不看血亏),

Notice 测试请打开浏览器禁止缓存 Notice:再使用前&#xff0c;请打开浏览器 F12 然后网络 然后点禁用缓存&#xff0c;避免nginx配置后磁盘缓存的情况。而且&#xff0c;请确认host没问题。 备注:你本地设置的host对服务器反向代理后的就没用了 一、介绍 概述 Nginx是lgor…

学习Nginx,看完这篇超详细的文章就够了

目录 本文简介一、Nginx的基本概念1.1、Nginx是什么&#xff1f;1.2、Nginx能帮助我们做些什么&#xff1f;1.3、Nginx的特性 二、Nginx的安装2.1、环境介绍2.2、安装Nginx2.3、Docker安装运行Nginx 三、Nginx的常用命令介绍3.1、操作Nginx【Centos6和7通用】3.2、命令总结 四、…

html img调用js,html调用js变量 如何在html中输出js文件中的变量

html页面代码中怎么调用js变量?html页面代码中怎么调用js变量,例如 在html代码中插入js代码: a=取浏览你把index1.js 中的onReady 去掉,把index1.js改成 function index1() { 请确定他们在一个文件夹下,然后就可以直接调用了 直接把两段代码合并 。 希望能给你帮助。 要实现…

如何在html中使用js

1.使用script标签&#xff0c;将js代码写入标签(html和js没有分离) 在 HTML 中&#xff0c;JavaScript 代码必须位于 <script> 与 </script> 标签之间。 <script>console.log(Number.MAX_VALUE)var s hello worldvar n 10var u undefinedvar l nullvar …

html中script相互调用,HTML调用JavaScript

仅使用HTML和CSS创建动态网页很困难。例如&#xff0c;仅使用CSS是无法很好完成下拉菜单和滑入式页面的&#xff0c;这是一项很难的技术。此时就需要使用JavaScript&#xff0c;那么如何在HTML中调用JavaScript&#xff1f;下面本篇文章就来给大家介绍一下在HTML中调用JavaScri…

html5文档加载前调用函数,html调用javascript外部文件显示函数未定义

在html的head标签中调用了外部js文件&#xff0c;路径没有错&#xff0c;浏览器中也没有报错。但是触发事件调用函数的时候却显示loginWarm函数未定义。怎么回事&#xff0c;查了很久都没有一个正确的解决办法 οninput"setCustomValidity();" οnchange"loginW…

html引入css js,html中如何调用css和js?

html中如何调用css和js&#xff1f;下面本篇文章就来给大家介绍一下在html中调用css和js的方法。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。 在HTML中调用css的方法 行内样式 在HTML标签的style属性中设定CSS样式 行内样式 内嵌式…

在HTML文档中使用JavaScript的方法详解

在HTML文档中使用JavaScript的方法详解 本文详细介绍&#xff0c;在HTML文档&#xff08;也称为HTML页面或网页&#xff09;中使用JavaScript脚本代码的多种方法。 假设要用JS生成字符☆直角三角形 实现JavaScript代码为&#xff1a; function RightTriangle(){ for(var j1;j&…

html中怎么引用js语言,HTML怎么引用javascript?

仅使用HTML和CSS创建动态网页很困难&#xff1b;例如&#xff0c;仅使用CSS是无法很好完成下拉菜单和滑入式页面的。此时就需要使用JavaScript。下面本篇文章就来给大家介绍一下在html中引用javascript的方法&#xff0c;希望对大家有所帮助。 在HTML中引用JavaScript的方法有两…

html中调用javascript函数,如何在HTML中调用JavaScript函数

如何在HTML中调用JavaScript函数? 在HTML文档中有很多方法可以调用JavaScript函数,这也不是一件容易的事。首先,我们使用了最简单的方法之一来调用HTML文档中的JavaScript函数: 在这种方法中,我们将在HTML文档的头部创建并定义一个函数。要在html文档中调用此函数,我们必…