首页 > 系统相关 >最全nginx安装教程,小白必看。

最全nginx安装教程,小白必看。

时间:2024-09-23 22:19:02浏览次数:10  
标签:http 配置文件 最全 server nginx html 小白必 服务器

1、简介

【Nginx是个好东西,没有它的话,这前端开发完了后(非vue开发),还得找一个web容器 大概率是tomcat。咱就需要配置tomcat ,tomcat的配置是比较麻烦的, nginx的配置就简单了好多。】

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 ,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

web服务器:

2、反向代理

【你访问A,然后我帮你把你的请求给你转到B。 你访问百度,然后我帮你把地址转到谷歌上。----感觉有点多此一举哈,为啥不直接访问谷歌,要通过反向代理来做 ?】

【比如我可以通过百度去搜索谷歌,还可以通过360去搜索谷歌,也可以通过搜狗搜索谷歌。这样用户的入口就变得多了,虽然目标服务器是同一个,但是都在消耗各自代理服务器的资源。就是nginx自己的资源。而且这样做还有个好处,我在这有一个统一的入口,这个入口是通过nginx进的,后面真正的资源服务器用户是不知道的,这样就比较安全。(减少黑客的直接攻击)】

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

3、负载均衡

(Nginx能做负载均衡,但是并不是主力军。)

【负载:就是这个服务器压力有多大;

均衡:就是把这份压力平坦下去,把它分给多个服务器,这样原本是给一台服务器上的压力,现在分给多台服务器了】

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

2、安装nginx

基于centOS 7.x安装。

其实也可以安装在docker上,但是docker有个天然的劣势就是对于文件的管理不是很优秀,而nginx刚好需要做文件替换,文件下载这些操作;第二个原因就是装nginx这台服务器,基本上只安装nginx,不安装别的软件,所以没有必要安装docker。

1、下载nginx

下载地址:

http://nginx.org/en/download.html

2、解压nginx安装包

上传文件到 /usr/local/nginx 里,然后解压。

tar -zxvf nginx-1.22.1.tar.gz

3、安装nginx

1、执行configure命令

./configure

这个命令是用来检查本地环境是否可以安装nginx,缺少哪些环境会给出提示。并生成MakeFile文件,用于安装。

执行后多会输出没有C编译环境,安装一下C环境即可。

 C compiler cc is not found

【解决办法,下面这些命令一个一个执行可以,一堆一起执行也可以】

yum install -y openssl*
​
yum install -y ncurses-devel
​
yum install -y make zlib-devel gcc c++ libtool openssl openssl-devel
​
​
./configure

==上面安装命令都安装完了后,在执行一下 ./configure,就跟刚才不一样了。

2、执行make命令

执行完上面的三个命令之后,查看一下是否生成了MakeFile文件,生成后执行如下编译安装命令:

make install 

make install命令执行后开始安装nginx,输出如下图代表安装完成。

4、启动nginx

1、查找nginx位置并启动

whereis nginx
​

conf:配置文件

html:页面文件

logs:日志文件

sbin:可执行文件

2、常用命令

# 启动nginx
./nginx
​
# 停止nginx
./nginx -s stop
​
# 重新加载配置文件
./nginx -s reload
​
# 查看nginx进程
ps aux|grep nginx

【启动nginx:】

【查看nginx进程:】

启动成功后,在宿主机访问nginx,nginx的端口号默认配置是80。

3、反向代理

作用:

  • 通过反向代理可以增加安全性,减少后台服务被攻击的隐患

  • 通过缓存的方式可以增加静态资源响应效率

  • 通过反向代理实现负载均衡

1、介绍反向代理配置

配置文件在conf目录下的nginx.config文件中。

1、基础配置

介绍nginx.conf配置文件内容:

worker_processes  1;
​
events {
    worker_connections  1024;
}
​
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
​
    server { #--只需要关注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;
        }
    } #--只需要关注server的配置--
}

listen:监听哪个端口

server_name:给这个服务取一个名字

location:反向代理的配置

error_page:错页面

root:静态资源的根目录

index:欢迎页,默认的请求页面

2、详细介绍location指令

做反向代理映射地址的

location [ = | ~ | ~* ] uri {
​
}

=:精确匹配,请求地址必须和uri相同才会进入这个location

~:模糊匹配,只要符合uri规则就会进入了这个location

~*:不区分大小写的模糊匹配

2、反向代理配置案例二则

【实现nginx代理百度】

    server {
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass  http://www.baidu.com;
        }
    }

修改完配置文件后,要重新加载一下配置文件

# 重新加载配置文件
./nginx -s reload

【结果是:访问nginx,显示的是百度。】

【实现nginx代理tomcat】

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 / {
            proxy_pass http://192.168.1.173:8080;
        }
    }
}

proxy_pass:反向代理的地址。这个配置的地址最后可以用“/”结尾的,也可以不用“/”结尾,有很大区别。

区别:

有正斜杠代理时会代理到根目录,举例说明:

创建一个html页面:

粘贴到tomcat/webapps/abc文件夹里去:

访问一下123.html页面。

修改一下配置文件:

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;
        }
        
        location /abc {##意思是说,只有访问/abc的时候,再给我代理到tomcat上;没访问/abc,访问别的 别给我代理tomcat。
            proxy_pass http://192.168.1.173:8080/;
        }
    }
}

修改完配置文件后,要重新加载一下配置文件

# 重新加载配置文件
./nginx -s reload

请求地址:http://192.168.1.173/abc/123.html

没有正斜杠时,代理后的地址是http://192.168.1.173:8080/abc/123.html

proxy_pass http://192.168.1.173:8080;

有正斜杠时,代理后的地址是http://192.168.1.173//123.html,由此会导致404问题

proxy_pass http://192.168.1.173:8080/;

在实际工作中,两种都有可能用到,注意区别。

4、负载均衡

1、配置hello集群

创建一个【java项目】的springboot工程:

打包(install):

虚拟机创建新目录:

通过命令启动两个服务,注意两个服务端口号要不同,并且要能通过请求区分出两个服务。

java -jar XXX.jar #启动java项目的
​

2、nginx负载均衡

worker_processes  1;
​
events {
    worker_connections  1024;
}
​
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
​
    upstream hw {  ## 负载均衡配置
        server 192.168.1.173:88;
        server 192.168.1.173:99;
    }
​
    server {
        listen       80;
        server_name  localhost;
        
        location / {
            proxy_pass http://hw;
        }
    }
}

upstream:负载均衡配置,内部可以配多个server

proxy_pass:代理到hw这个负载均衡配置

修改完配置文件后,要重新加载一下配置文件

# 重新加载配置文件
./nginx -s reload

nginx的负载均衡支持多种模式,最常见的是以下三种:

  • 轮询:平均分配,逐一做负载,是默认的方式

  • 权重:可以设置一个权重值,让某一个服务被分配做负载的比例增大

    【访问的时候,显示88 端口1次,99端口两次】(不够智能)

            upstream hw {
                server 192.168.1.173:88 weight=1;
                server 192.168.1.173:99 weight=2;
        }

  • ip_hash:对发送请求过来的ip地址进行hash计算,得到值会分配给upstream中配置的服务,且相同的ip访问计算的结果相同,就会被分配到同一个服务中。【这样做的好处是,实现session共享的问题,可以保证同一个ip地址不会被负载均衡到其他项目里,而导致拿不到session。】

            upstream hw {
                ip_hash;
                server 192.168.1.173:88;
                server 192.168.1.173:99;
            }

    同一个IP,无论访问多少次,都是显示同一个内容。(不够智能)

标签:http,配置文件,最全,server,nginx,html,小白必,服务器
From: https://blog.csdn.net/weixin_62896751/article/details/142469364

相关文章

  • Nginx优化与防盗链
    目录一、隐藏Nginx版本号二、修改Nginx用户与组三、配置Nginx网页缓存时间四、实现Nginx的日志切割五、配置Nginx实现连接超时六、更改Nginx运行进程数七、配置Nginx实现网页压缩功能八、实现网页图片的大小压缩九、配置Nginx实现防盗链一、隐藏Nginx版本号隐藏N......
  • 安装nginx-http-flv-module模块
    简介nginx-http-flv-module是什么流程注意事项详细步骤查看当前已经安装的nginx版本下载对应版本的nginx源代码下载nginx-http-flv-module模块源代码重新编译nginx验证nginx-http-flv-module是否安装好了引用简介nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松......
  • 收藏:加不加「/」?Nginx location 路径与 proxy_pass 的规律
    从一张梗图开始起源于在TG某个频道看到的一张图:图下面的评价是:Nginxissohard!实际上这张图描述的是nginxlocation的路径配置,及location代码块中proxy_pass的路径关系,属于nginx应用中路径转发的知识。例如图中Case1对应的代码块应该为:location/test1{......
  • Nginx反向代理
    前言    Nginx是互联网应用的一层网关,是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它最初是由俄罗斯的伊戈尔·赛索耶夫(IgorSysoev)在2002年开发的,目的是为了解决C10K问题(即同时处理10000个客户端连接的问题)。Nginx以其高稳定性、丰富的功......
  • Nginx 配置HTTPS
    HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。在Nginx中,配置HTTPS也非常的简单,我们首先需要准备好与我们域名关联的HTTPS证书,接着,再配置对应的证书目录即可。Nginx配置HTTPS的详细......
  • Java面试题大全(全网最全,持续更新)初级(2)
    1.基础语法1.1.Java的数据类型有哪些?Java有两种数据类型:基本数据类型(PrimitiveTypes):包括byte、short、int、long、float、double、char、boolean。引用数据类型(ReferenceTypes):包括类、接口、数组等。1.2.final关键字有什么作用?final关键字可以用来修饰类、方......
  • 全网最全挂机掘金脚本合集,单机一天壹张+无压力
    摘要本文介绍了一款功能丰富的挂机型脚本软件,该软件支持多种平台的自动化操作项目概述当前市场上,挂机型脚本软件种类繁多,功能齐全。本软件集成了多种平台的自动化脚本,包括微信阅读、卷轴平台、广告掘金、自动养机、短视频挂机等。用户只需下载一款软件,即可享受多达十几......
  • Nginx 中 proxy_pass 末尾斜杠的奥秘
    一、proxy_pass的类型概述Nginx的官网将proxy_pass分为两种类型:不带URI方式和带URI方式。不带URI方式只包含IP和端口号,例如proxy_passhttp://localhost:8080。而带URI方式在端口号之后有其他路径,包括只有单个“/”的,如proxy_passhttp://localhost:8080/,以及其......
  • 听说ChatGPT o1推理模型即将问世,传统问答系统是否还有存在的必要?毕业设计:基于知识图谱
     OpenAI隆重推出全新一代的o1模型,该模型在多个领域展现出了非凡的能力,标志着人工智能技术的又一次飞跃。该模型专门解决比此前的科学、代码和数学模型能做到的更难的问题,实现复杂推理。那来看看并体验以下我们传统的问答系统的设计流程和具体面貌吧!!!1.1系统架构设计1.1.1......
  • 全网最全挂机掘金脚本合集,单机一天壹张+无压力
    摘要本文介绍了一款功能丰富的挂机型脚本软件,该软件支持多种平台的自动化操作项目概述当前市场上,挂机型脚本软件种类繁多,功能齐全。本软件集成了多种平台的自动化脚本,包括微信阅读、卷轴平台、广告掘金、自动养机、短视频挂机等。用户只需下载一款软件,即可享受多达十几......