Nginx1.20.2-Linux-安装

文章目录

    • 1.下载压缩包
        • 1.官网下载
        • 2.找到1.20.2
        • 3.百度网盘
    • 2.Linux安装
        • 1.搭建gcc环境
        • 2.上传到 /usr/local/nginx1.20.2
        • 3.解压
          • 1.解压到当前目录
          • 2.删除压缩包
        • 4.配置Nginx的编译路径
          • 1.进入nginx-1.20.2
          • 2.执行内部的脚本,指定编译路径为/usr/local/nginx
        • 5.编译并安装
        • 6.删除 /usr/local/nginx1.20.2 (因为已经编译完成了,所以就没用了)
        • 7.进入/usr/local/nginx输入./sbin/nginx -t,测试nginx是否正常
        • 8.指定配置文件启动Nginx
          • 1.启动
          • 2.查看Nginx进程
          • 3.开启80端口
            • 1.服务器开启
            • 2.安全组开启
          • 4.访问
        • 9.Nginx 配置文件详解
    • 3.Nginx案例:部署前端静态页面
        • 1.编写一个html文件
        • 2.**配置 Nginx**
          • 1.编辑配置文件
          • 2.新增一个server(这样就相当于http://localhost:9091/下面部署了一个/usr/local/nginx/html/test.html)
          • 3.检查配置文件格式
          • 4.重启Nginx,使配置生效
        • 3.编写 /usr/local/nginx/html/test.html
        • 4.开放9091端口,测试访问
          • 1.服务器开放
          • 2.安全组开放
          • 3.测试访问,成功!!!

1.下载压缩包

1.官网下载

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

2.找到1.20.2

CleanShot 2024-11-18 at 19.07.46@2x

3.百度网盘

CleanShot 2024-11-18 at 19.12.28@2x

2.Linux安装

1.搭建gcc环境
yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.上传到 /usr/local/nginx1.20.2
mkdir /usr/local/nginx1.20.2
cd /usr/local/nginx1.20.2

CleanShot 2024-11-18 at 19.18.01@2x

3.解压
1.解压到当前目录
tar -zxvf nginx-1.20.2.tar.gz 
2.删除压缩包
rm -f nginx-1.20.2.tar.gz 
4.配置Nginx的编译路径
1.进入nginx-1.20.2
cd nginx-1.20.2/
2.执行内部的脚本,指定编译路径为/usr/local/nginx
./configure --prefix=/usr/local/nginx

CleanShot 2024-11-18 at 19.27.48@2x

5.编译并安装
make & make install

CleanShot 2024-11-18 at 19.31.12@2x

6.删除 /usr/local/nginx1.20.2 (因为已经编译完成了,所以就没用了)
rm -rf /usr/local/nginx1.20.2
7.进入/usr/local/nginx输入./sbin/nginx -t,测试nginx是否正常
cd /usr/local/nginx
./sbin/nginx -t

CleanShot 2024-11-18 at 19.40.53@2x

8.指定配置文件启动Nginx
1.启动
./sbin/nginx -c conf/nginx.conf
2.查看Nginx进程

CleanShot 2024-11-18 at 19.44.33@2x

3.开启80端口
1.服务器开启
systemctl start firewalld && firewall-cmd --permanent --add-port=80/tcp && firewall-cmd --reload && firewall-cmd --query-port=80/tcp
2.安全组开启

CleanShot 2024-11-18 at 19.48.39@2x

4.访问
http://152.136.40.209:80

CleanShot 2024-11-18 at 19.49.11@2x

9.Nginx 配置文件详解
#Nginx用户及组:用户 组。window下不指定
#user  nobody;#工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。
worker_processes  1;#错误日志:存放路径。
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid(进程标识符):存放路径
pid       /usr/local/nginx/logs/nginx.pid;#一个进程能打开的文件描述符最大值,理论上该值因该是最多能打开的文件数除以进程数。
#但是由于nginx负载并不是完全均衡的,所以这个值最好等于最多能打开的文件数。
#LINUX系统可以执行 sysctl -a | grep fs.file 可以看到linux文件描述符。
worker_rlimit_nofile 65535;events {#使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。use epoll;#单个进程最大连接数(最大连接数=连接数*进程数)worker_connections  1024;#客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,#一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。#client_header_buffer_size 4k;
}http {#设定mime类型,类型由mime.type文件定义include       mime.types;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"';#用了log_format指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径#记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息#access_log  logs/host.access.log  main;#access_log  logs/host.access.404.log  log404;#服务器名字的hash表大小server_names_hash_bucket_size 128;#客户端请求头缓冲大小。#nginx默认会用client_header_buffer_size这个buffer来读取header值,#如果header过大,它会使用large_client_header_buffers来读取。#如果设置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request#如果超过buffer,就会报HTTP 414错误(URI Too Long)#nginx接受最长的HTTP头部大小必须比其中一个buffer大#否则就会报400的HTTP错误(Bad Request)#client_header_buffer_size 32k;#large_client_header_buffers 4 32k;#隐藏ngnix版本号#server_tokens off;#忽略不合法的请求头#ignore_invalid_headers   on;#让 nginx 在处理自己内部重定向时不默认使用  server_name设置中的第一个域名#server_name_in_redirect off;#客户端请求体的大小#client_body_buffer_size    8m;#开启文件传输,一般应用都应设置为on;若是有下载的应用,则可以设置成off来平衡网络I/O和磁盘的I/O来降低系统负载sendfile        on;#告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。#tcp_nopush     on;#tcp_nodelay off 会增加通信的延时,但是会提高带宽利用率。在高延时、数据量大的通信场景中应该会有不错的效果#tcp_nodelay on,会增加小包的数量,但是可以提高响应速度。在及时性高的通信场景中应该会有不错的效果tcp_nodelay on;#长连接超时时间,单位是秒keepalive_timeout  65;#gzip模块设置,使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。#gzip  on;                     #开启gzip#gzip_min_length  1k;          #最小压缩大小#gzip_buffers     4 16k;       #压缩缓冲区#gzip_http_version 1.0;        #压缩版本#gzip_comp_level 2;            #压缩等级#gzip_types   text/plain text/css text/xml text/javascript application/json application/x-javascript application/xml application/xml+rss;#压缩类型#负载均衡#max_fails为允许请求失败的次数,默认为1#weight为轮询权重,根据不同的权重分配可以用来平衡服务器的访问率。# upstream myServer{#   server  192.168.247.129:8080 max_fails=3 weight=2;#   server  192.168.247.129:8081 max_fails=3 weight=4;  # }#server {#    listen       80;#   #   #IP/域名可以有多个,用空格隔开#   server_name  192.168.247.129;#   #server_name  www.test.com;##    #charset koi8-r;##    #access_log  logs/host.access.log  main;#   #   #反向代理配置,#   #将所有请求为www.test.com的请求全部转发到upstream中定义的目标服务器中。#   location / {#               #       #此处配置的域名必须与upstream的域名一致,才能转发。#       proxy_pass http://myServer;#       #proxy_pass http://192.168.247.129:8080;#       #        proxy_connect_timeout 20;          #nginx跟后端服务器连接超时时间(代理连接超时)#       #        #client_max_body_size       10m;   #允许客户端请求的最大单文件字节数#        #client_body_buffer_size    128k;  #缓冲区代理缓冲用户端请求的最大字节数#        #proxy_send_timeout         300;   #后端服务器数据回传时间(代理发送超时)#        #proxy_read_timeout         300;   #连接成功后,后端服务器响应时间(代理接收超时)#        #proxy_buffer_size          4k;    #设置代理服务器(nginx)保存用户头信息的缓冲区大小#        #proxy_buffers              4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置#        #proxy_busy_buffers_size    64k;   #高负荷下缓冲大小(proxy_buffers*2)#        #proxy_temp_file_write_size 64k;   #设定缓存文件夹大小,大于这个值,将从upstream服务器传         #       #       root   html;#       #       #定义首页索引文件的名称#       index  index.html index.htm;#    }##   #动静分离 静态资源走linux 动态资源走tomcat#   # 注意 /source/image/下面寻找资源#   location /image/ {#       root /source/;#       autoindex on;#   }       ###    # 出现50x错误时,使用/50x.html页返回给客户端#    error_page   500 502 503 504  /50x.html;#    location = /50x.html {#        root   html;#    }#}#下面是配置生产环境中既支持HTTP又支持HTTPS,保证用户在浏览器中输入HTTP也能正常访问# SSL证书 配置                                 ssl_certificate         cert/yphtoy.com.pem;   #加密证书路径ssl_certificate_key cert/yphtoy.com.key;       #加密私钥路径ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;     #加密协议ssl_session_cache   shared:SSL:1m;             #加密访问缓存设置,可以大大提高访问速度ssl_session_timeout 10m;                       #加密访问缓存过期时间ssl_ciphers     HIGH:!aNULL:!MD5;              #加密算法ssl_prefer_server_ciphers on;                  #是否由服务器决定采用哪种加密算法# 负载均衡upstream api_upstream{server 127.0.0.1:8080 max_fails=3 weight=1;server 127.0.0.1:8081 max_fails=3 weight=1;}#api 接口(兼容HTTP)server{listen 80;server_name api.test.com;# 301重定向跳转到HTTPS接口return 301 https://$server_name$request_uri;error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}#api 接口(兼容HTTPS)server{listen 443 ssl;server_name api.test.com;location / {root html;index  index.html index.htm;proxy_pass http://api_upstream;#语法: proxy_cookie_path oldpath replacepath;#oldpath就是你要替换的路径 replacepath 就是要替换的值#作用:同一个web服务器下面多个应用之间能获取到cookieproxy_cookie_path /api/ /;#服务端接收的请求头Cooke值不变proxy_set_header Cookie $http_cookie;}}#管理后台端(兼容HTTP)server{listen 80;server_name manage.test.com;# 301重定向跳转到HTTPS接口return 301 https://$server_name/$request_uri;error_page 500 502 503 504 /50x.html;location = /50x.html{root html  }}#管理后台端(兼容HTTPS)server{listen 443 ssl;server_name manage.test.com;location / {root /home/test/web/distindex /index.html;#语法:try_files 【$uri】 【 $uri/】 【参数】#当用户请求https://manage.test.com/login时,#一.如果配置了上面的默认index,会依次请求#1./home/test/web/dist/login       查找有没有login这个文件,没有的话#2./home/test/web/dist/index.html  有就直接返回#二.如果没有配置了上面的默认index或者配置了没有找到对应的资源,会依次请求#1./home/test/web/dist/login        查找有没有login这个文件,没有的话#2./home/test/web/dist/login/       查找有没有login这个目录,没有的话#3.请求https://manage.test.com/index.html  nginx内部做了一个子请求#三.总的来说,index的优先级比try_files高,请求会先去找index配置,这里最后一个参数必须存在try_files $uri $uri/ /index.html;   #解决跨域问题#允许跨域请求地址(*表示全部,但是无法满足带cookie请求,因为cookie只能在当前域请求)add_header Access-Control-Allow-Origin $http_origin;#允许接收cookie和发送cookieadd_header Access-Control-Allow-Credentials 'true';#允许请求的方法add_header Access-Control-Allow-Methods 'GET,POST,DELETE,PUT,OPTIONS';#允许请求头(Content-Type:请求数据/媒体类型 x-requested-with:判断请求是异步还是同步 自定义header 比如 token)add_header Access-Control-Allow-Headers $http_access_control_request_headers;#浏览器缓存请求头信息,1800秒内,只会有1次请求,不会出现"OPTIONS"预请求,节约资源#add_header Access-Control-Max-Age '1800';if ($request_method = 'OPTIONS') {return 204;}#服务端HttpServletRequest可以获得用户的真实ipproxy_set_header X-Real-IP $remote_addr;#服务端HttpServletRequest可以获得用户的真实ip和经过的每一层代理服务器的ipproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#服务端接收的请求头Host值不变proxy_set_header Host  $http_host;proxy_set_header X-Nginx-Proxy true;}} 
}

3.Nginx案例:部署前端静态页面

1.编写一个html文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>My Nginx Test</title>
</head>
<body><h1>Welcome to Nginx on localhost:9091!</h1>
</body>
</html>
2.配置 Nginx
1.编辑配置文件
vim /usr/local/nginx/conf/nginx.conf
2.新增一个server(这样就相当于http://localhost:9091/下面部署了一个/usr/local/nginx/html/test.html)
    server {listen 9091;server_name localhost;location / {root /usr/local/nginx/html;    # 静态文件根目录index test.html;               # 默认首页文件try_files $uri /test.html;     # 如果访问的文件不存在,加载 test.html}error_page 404 /404.html;          # 可选:配置404页面}

CleanShot 2024-11-18 at 20.11.46@2x

3.检查配置文件格式
/usr/local/nginx/sbin/nginx -t

CleanShot 2024-11-18 at 20.12.33@2x

4.重启Nginx,使配置生效
/usr/local/nginx/sbin/nginx -s reload
3.编写 /usr/local/nginx/html/test.html
vim /usr/local/nginx/html/test.html

CleanShot 2024-11-18 at 20.15.03@2x

4.开放9091端口,测试访问
1.服务器开放
systemctl start firewalld && firewall-cmd --permanent --add-port=9091/tcp && firewall-cmd --reload && firewall-cmd --query-port=9091/tcp

CleanShot 2024-11-18 at 20.15.58@2x

2.安全组开放

CleanShot 2024-11-18 at 20.17.01@2x

3.测试访问,成功!!!

http://152.136.40.209:9091/

CleanShot 2024-11-18 at 20.17.40@2x

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498552.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用的linux命令介绍

Linux是一个强大的操作系统&#xff0c;它提供了许多命令行工具来帮助用户管理文件和目录、监控系统性能、以及执行各种系统管理任务。下面是一些常用的Linux命令&#xff0c;我会用简单的语言来解释它们的作用&#xff1a; 1. ls • 作用&#xff1a;列出目录内容。 • 比喻&a…

linux--编译驱动模块【虚拟网卡 tun】

linux--编译驱动模块【虚拟网卡 tun】 1 介绍2 操作2.1 源码 linux-5.10.1602.2 安装控制台应用程序依赖库&#xff0c;其他库2.3 普通用户模式操作2.4 然后配置需要编译的模块2.5 关闭 preempt2.6 开启 bpf【未成功&#xff0c;放弃】2.7 编译模块报错处理一&#xff1a;缺少证…

前端超大缓存IndexDB、入门及实际使用

文章目录 往期回顾项目实战初始化表获取列表新增表的数据项获取详情根据ID获取详情根据其他字段获取详情 删除数据 总结 往期回顾 在之前的文章中&#xff0c;我们介绍了IndexDB vs Cookies vs Session这几个的对比&#xff0c;但是没有做实际项目的演示&#xff0c;今天我们用…

swiftui开发页面加载发送请求初始化@State变量

在SwiftUI中&#xff0c;你不能直接在init中更新State变量&#xff0c;因为State是由SwiftUI框架管理的&#xff0c;初始化时不允许直接修改。所以需要在onAppear发送请求然后修改State状态。 在SwiftUI中&#xff0c;如果希望在页面加载时立即发送网络请求&#xff0c;可以使…

OpenStack系列第四篇:云平台基础功能与操作(Dashboard)

文章目录 1. 镜像&#xff08;Image&#xff09;添加镜像查看镜像删除镜像 2. 卷&#xff08;Volume&#xff09;创建卷查看卷删除卷 3. 网络&#xff08;虚拟网络&#xff09;创建网络查看网络删除网络 4. 实例类型创建实例类型查看实例类型删除实例类型 4. 密钥对&#xff08…

3D数学基础2

矩阵的行列式 在任意方阵中都存在至少一个标量&#xff0c;称作该方阵的行列式。在线性代数中&#xff0c;行列式有很多有用的性质 线性运算法则 方阵 M M M的行列式记作 ∣ M ∣ |M| ∣M∣或“det M”。非方阵矩阵的行列式是未定义的。 注意&#xff0c;在书写行列式时&…

elementui的默认样式修改

今天用element ui &#xff0c;做了个消息提示&#xff0c;发现提示的位置总是在上面&#xff0c;如图&#xff1a; 可是我想让提示的位置到下面来&#xff0c;该怎么办&#xff1f; 最后还是看了官方的api 原来有个自定义样式属性 customClass 设置下就好了 js代码 css代码…

WebRTC:实现浏览器与移动应用的实时通信

1.技术简介 &#xff08;Web Real-Time&#xff09;是一种开放式实时通信技术&#xff0c;旨在使浏览器和移动应用程序通过简单的API即可实现实时音频、视频和数据传输&#xff0c;而无需安装插件或额外软件。它支持网络应用中的点对点通信&#xff0c;例如视频聊天、语音通话…

NVR小程序接入平台EasyNVR使用FFmpeg取流时提示错误是什么原因呢?

在视频监控系统中&#xff0c;FFmpeg常用于从各种源&#xff08;如摄像头、文件、网络流等&#xff09;获取流媒体数据&#xff0c;这个过程通常称为“取流”。 在EasyNVR平台中&#xff0c;使用FFmpeg取流是一种常见的操作。FFmpeg作为一款强大的开源多媒体处理工具&#xff…

NXP i.MX8系列平台开发讲解 - 5.4 调试篇 - 掌握perf 工具调试(一)

专栏文章目录传送门&#xff1a;返回专栏目录 Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 文章目录 目录 掌握perf 工具调试(一) 1. Perf 工具介绍 1.1 Perf 工作原理 1.2 Perf 工具基本功能 2. Perf 安…

实际部署Dify可能遇到的问题:忘记密码、开启HTTPS、知识库文档上传的大小限制和数量限制

背景 前面我们以 docker compose 容器化的方式本地部署了 Dify 社区版&#xff0c;并快速体验了其聊天助手、工作量编排以及智能体&#xff08;Agent&#xff09;功能。不过后续实际生产环境使用时遇到了忘记密码、如何开启SSL以支持HTTPS、如何突破知识库文档上传的大小限制和…

Python 青铜宝剑十六维,破医疗数智化难关(上)

一、医疗数智化困境剖析 在当今数智化浪潮的席卷下&#xff0c;医疗行业正经历着深刻变革&#xff0c;医疗数智化转型已成为不可阻挡的趋势。它将现代信息技术深度融入医疗的各个环节&#xff0c;从电子病历的广泛普及&#xff0c;实现医疗信息的便捷存储与快速查阅&#xff0…

Kafka 性能提升秘籍:涵盖配置、迁移与深度巡检的综合方案

文章目录 1.1.网络和io操作线程配置优化1.2.log数据文件刷盘策略1.3.日志保留策略配置1.4.replica复制配置1.5.配置jmx服务1.6.系统I/O参数优化1.6.1.网络性能优化1.6.2.常见痛点以及优化方案1.6.4.优化参数 1.7.版本升级1.8.数据迁移1.8.1.同集群broker之间迁移1.8.2.跨集群迁…

易基因: BS+ChIP-seq揭示DNA甲基化调控非编码RNA(VIM-AS1)抑制肿瘤侵袭性|Exp Mol Med

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 肝细胞癌&#xff08;hepatocellular carcinoma&#xff0c;HCC&#xff09;早期复发仍然是一个具有挑战性的领域&#xff0c;其中涉及的机制尚未完全被理解。尽管微血管侵犯&#xff08…

代码随想录算法【Day7】

DAY7 454.四数相加II 特点&#xff1a; 1.只用返回元组的个数&#xff0c;而不用返回具体的元组 2.可以不用去重 暴力思路&#xff1a;遍历&#xff0c;这样时间复杂度会达到O(n^4) 标准思路&#xff1a;用哈希法&#xff08;场景&#xff1a;在一个集合里面判断一个元素…

[TOTP]android kotlin实现 totp身份验证器 类似Google身份验证器

背景&#xff1a;自己或者公司用一些谷歌身份验证器或者microsoft身份验证器&#xff0c;下载来源不明&#xff0c;或者有广告&#xff0c;使用不安全。于是自己写一个&#xff0c;安全放心使用。 代码已开源&#xff1a;shixiaotian/sxt-android-totp: android totp authenti…

Type c系列接口驱动电路·内置供电驱动电路使用USB2.0驱动电路!!!

目录 前言 Type c常见封装类型 Type c引脚功能详解 Type c常见驱动电路详解 Type c数据手册 ​​​​​​​ ​​​​​​​ 编写不易&#xff0c;仅供学习&#xff0c;请勿搬运&#xff0c;感谢理解 常见元器件驱动电路文章专栏连接 LM7805系列降压芯片驱动电路…

【竞技宝】LOL:IG新赛季分组被质疑

北京时间2024年12月31日&#xff0c;今天已经2024年的最后一天&#xff0c;在进入一月之后&#xff0c;英雄联盟将迎来全新的2025赛季。而目前新赛季第一阶段的抽签结果已经全部出炉&#xff0c;其中人气最高的IG战队在本次抽签中抽到了“绝世好签”引来了网友们的质疑。 首先介…

【大模型实战篇】Mac本地部署RAGFlow的踩坑史

1. 题外话 最近一篇文章还是在11月30日写的&#xff0c;好长时间没有打卡了。最近工作上的事情特别多&#xff0c;主要聚焦在大模型的预训练、微调和RAG两个方面。主要用到的框架是Megatron-DeepSpeed&#xff0c;后续会带来一些分享。今天的文章主要聚焦在RAG。 近期调研了一系…

Prompt工程--AI开发--可置顶粘贴小工具

PROMPT 1.背景要求&#xff1a;我需要开发一个简单的粘贴小工具&#xff0c;用于方便地粘贴和管理文本内容。该工具需要具备以下功能&#xff1a;粘贴功能&#xff1a;提供一个文本框&#xff0c;用户可以粘贴内容。窗口置顶&#xff1a;支持窗口置顶功能&#xff0c;确保窗口…