前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >linux 中nginx 的安装

linux 中nginx 的安装

作者头像
IT小马哥
发布于 2020-03-18 07:02:41
发布于 2020-03-18 07:02:41
2.2K00
代码可运行
举报
文章被收录于专栏:Java TaleJava Tale
运行总次数:0
代码可运行

inux 中nginx 的安装

##序言

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

牛逼吹的差不多啦,如果你还不过瘾,你可以百度百科或者一些书上找到这样的夸耀,比比皆是。

Nginx常用功能

1、Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。

Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。

2、负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。上3个图,理解这三种负载均衡算法的实现

3、web缓存

Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。

4、Nginx相关地址

源码:https://trac.nginx.org/nginx/browser

官网:http://www.nginx.org/

Nginx安装

安装依赖库

  1. 安装gcc模块, 安装Nginx前,必须先确保安装了gcc环境。那么何为gcc?它是 Linux 下默认的 C/C++ 编译器,大部分 Linux 发行版中都是默认安装的。命令行输入gcc -v,如果显示命令未找到或command not found,则代表没有安装gcc,需要安装上。 yum install gcc-c++
  2. 安装prce模块: PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。 地址 : http://www.pcre.org/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//下载`wget 
https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.gz 
//解压
tar -zxvf pcre-8.37.tar.gz 
//然后,进入包,配置:
./configure 
//安装
make && make install  
  1. 安装openssl模块,OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。地址: http://www.openssl.org/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//下载
 wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz  
// 解压
 tar -zxvf openssl-1.1.0e.tar.gz  
//然后,进入包,配置:
./configure 
//安装
make && make install  
  1. 安装gzip 模块, zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。 地址 http://www.zlib.net/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//下载
wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz?download  
//解压
tar -zxvf zlib-1.2.11.tar.gz?download  
// 然后,进入包,配置:
./configure 
//安装
make && make install  

也可以 yum安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y pcre pcre-devel 
yum install -y openssl openssl-devel 
yum install -y zlib zlib-devel 

安装Nginx并启动

//创建一个文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/
mkdir server
cd server/
//下载 : 
wget http://nginx.org/download/nginx-1.7.8.tar.gz
//解压
tar -xvf nginx-1.7.8.tar.gz
//创建目录
mkdir nginx
//>>安装一个第三方模块,可以打印输出一些东西,一般用于调试nginx的参数时使用(也可以不安装)
//>>创建一个模块目录 用于放第三方模块 mkdir nginx-module
//>>进入目录: cd nginx-module
//>>下载: wget https://github.com/openresty/echo-nginx-module/archive/v0.60.tar.gz
//>>解压: tar zxvf v0.60.tar.gz echo-nginx-module-0.60 
//进入安装目录
cd nginx-1.7.8
//配置
./configure --prefix=/usr/local/server/nginx --add-module=/usr/local/server/nginx-module/echo-nginx-module-0.60 --with-debug

源码的安装一般由有这三个步骤:配置(configure)、编译(make)、安装(make install)
一般在编译前加上一句:
./configure --prefix=/xxx/xxx
其中–prefix选项就是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较分散。
为了便于集中管理某个软件的各种文件,可以配置–prefix,如:
./configure --prefix=/usr/local/server/nginx
可以把所有资源文件放在/usr/local/server/nginx的路径中,就不会分散了。
// 编译安装
make && make install
//进入启动目录
cd ..
cd nginx/sbin/
//启动
./nginx
//这个时候可以访问本机IP了

配置Nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
打开配置文件
vi /usr/local/nginx/conf/nginx.conf

后面详细介绍一下配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user www www;
worker_processes 2; #设置值和CPU核心数一致
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  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';
  
#charset gb2312;
     
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
     
  sendfile on;
  tcp_nopush on;
  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on; 
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
 
  #limit_zone crawler $binary_remote_addr 10m;
 #下面是server虚拟主机的配置
 server
  {
    listen 80;#监听端口
    server_name localhost;#域名
    index index.html index.htm index.php;
    root /usr/local/webserver/nginx/html;#站点目录
      location ~ .*\.(php|php5)?$
    {
      #fastcgi_pass unix:/tmp/php-cgi.sock;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi.conf;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
      expires 30d;
  # access_log off;
    }
    location ~ .*\.(js|css)?$
    {
      expires 15d;
   # access_log off;
    }
    access_log off;
  }

}

Nginx 常用命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx -s reload            # 重新载入配置文件
nginx -s reopen            # 重启 Nginx
nginx -s stop              # 停止 Nginx
nginx -t                   # 检查配置文件nginx.conf
nginx -s quit              #优雅停止nginx,有连接时会等连接请求完成再杀死worker进程  
nginx -v            	   #查看版本
nginx  -c filename  	   #指定配置文件
nginx -h           		   # 查看帮助信息
nginx -s reopen      	   #重新打开日志文件,一般用于切割日志

本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue中v-for图片src路径错误
assets:在项目编译的过程中会被webpack处理解析为模块依赖,只支持相对路径的形式,如< img src=”./logo.png”>和background:url(./logo.png),”./logo.png”是相对资源路径,将有webpack解析为模块依赖 
跟着阿笨一起玩NET
2020/10/09
1.4K0
vue中v-for图片src路径错误
Vue之动态绑定属性
v-bind能给元素动态绑定属性 img中的src在大多数情况下都是动态传递过来的数据,并非是写死的,这时就需要用v-bind的语法,做src属性的动态绑定。 在需要动态绑定的属性前加上v-bind:,告诉Vue这个属性我需要动态绑定。
yuanshuai
2022/08/22
3K0
Vue之动态绑定属性
一篇文章带你了解网页框架——Vue简单入门
如果你以后想从事后端程序员,又想要稍微了解前端框架知识,那么这篇文章或许可以给你带来帮助
秋落雨微凉
2022/10/25
1K0
一篇文章带你了解网页框架——Vue简单入门
【Vue #2】脚手架 & 指令
在 构建工具(Vite/Webpack )环境下开发Vue,这是最推荐的、也是企业采用的方式
IsLand1314
2025/04/11
1210
【Vue #2】脚手架 & 指令
3.绑定属性、绑定html、绑定class、绑定style
1.绑定属性 <template> <div id="app"> <!-- 绑定属性 --> <br> <div v-bind:title='title'>鼠标悬浮出现</div> <br> <img :src="url" alt="仙女"> </div> </template> <script> export default { name: 'app', data () { return { title:'
玩蛇的胖纸
2019/09/25
2.6K0
3.绑定属性、绑定html、绑定class、绑定style
Vue常用指令02-v-on/v-bind/v-model/自定义指令【1小时掌握vue3系列】
Hello,大家好!我是方才,前面已经学习条件渲染和列表渲染的指令,今天我们一口气把剩下的内容搞定。包括监听事件v-on、动态绑定v-bind、双向绑定v-model以及不常用的指令和自定义指令。
方才编程_公众号同名
2024/11/18
2570
Vue常用指令02-v-on/v-bind/v-model/自定义指令【1小时掌握vue3系列】
Vue常用内置指令
v-show指令根据表达式的真假,显示或隐藏HTML元素。   使用v-show指令,元素本身是要被渲染的,至于是否显示是通过设置CSS样式属性display来控制的,如果表达式的值为false,则设置样式:"display:none"
别团等shy哥发育
2023/02/25
4530
Vue常用内置指令
我用 Vue3+Ts+Vite2 写了一个美女小黄站
首先使用以下命令创建项目 yarn create @vitejs/app vue3-ts-vite2 --template vue-ts vite.config.js import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' // https://vitejs.dev/config/ export default defineConfig({ plugins: [
公众号---人生代码
2021/04/22
4.5K0
Vue路由详解(路由基础,路由轮播,路由传参,通配符路由)
一. Vue路由基础知识点: 1.router-view: 类似angular里的插座,用于承载路由的切换组件 2.router-link: 类似angular里的routerLink,区别是:vue的router-link是一个组件,直接充当a标签使用.但是在最后渲染时,vue还是会将其渲染成a标签 3.routes: 数组,用来做路由信息的配置 4.router: 对象,通过该对象的方法实现路由的跳转,例如按钮点击实现跳转 5.route: 类似angular里的ActiveRoute,用来获取路由传参的值
生南星
2019/07/22
3.3K0
Vue实战必会的几个技巧
键盘事件在 js 中我们通常通过绑定一个事件,去获取按键的编码,再通过 event 中的 keyCode 属性去获得编码如果我们需要实现固定的键才能触发事件时就需要不断的判断,其实很麻烦let button = document.querySelector('button')button.onkeyup = function (e) { console.log(e.key) if (e.keyCode == 13) { console.log('我是回车键') }}vue 中
yyds2026
2022/10/03
8130
Vue入门(二)——本地应用
为元素绑定事件,方法内部通过this关键字可以访问定义在data中的数据。简写为@。
matt
2022/10/25
7680
Vue入门(二)——本地应用
Vue常用指令(二)
绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略。
全栈程序员站长
2022/07/01
3180
Vue常用指令(二)
Vue基础
注意:使用v-text时,会将标签内部的内容覆盖并且替换成对应的内容,若不希望内容被覆盖,则不可使用v-text的写法,两种写法都支持表达式,如:v-text="message + ‘!’",{{ message + “!” }}。
Cikian.
2022/09/22
2.7K0
Vue基础
dom啦11 图片展示 核心:在于点击li>img里面的哪一个就把this.src赋值给div>img的src
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> *{padding: 0px;margin: 0px;} div { width: 670px; border: 1px solid red; margin: 100px auto; } ul { list-style: none; display: flex; justify-content: space
贵哥的编程之路
2020/10/28
2.8K0
原 Swiper实现图片预览效果
作者:汪娇娇 日期:2018年3月10日 一、介绍 先用几张图来和大家描述一下什么是图片预览效果吧。 图一:图片列表; 图二:点击列表中 “小猫” 这张图片,会弹出图二这样的预览图; 图三:对图二向
jojo
2018/05/03
2.3K0
原                                                                                Swiper实现图片预览效果
基于html的美食网站——速鲜站餐饮食品(HTML+CSS+JavaScript)大学生网页制作教程 表格布局网页模板 学生HTML静态美食网页设计作业成品 简
👨‍🎓静态网站的编写主要是用HTML DIV+CSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的前端Html5代码都是一致的,本网页适合修改成为各种类型的产品展示网页,比如美食、旅游、摄影、电影、音乐等等多种主题,希望对大家有所帮助。 🧡 【作者主页——🔥获取更多优质源码】 🧡 【web前端期末大作业——🔥🔥毕设项目精品实战案例(1000套)
IT司马青衫
2022/08/16
1.4K0
基于html的美食网站——速鲜站餐饮食品(HTML+CSS+JavaScript)大学生网页制作教程 表格布局网页模板 学生HTML静态美食网页设计作业成品 简
VUE2快速入门(三)---数据声明和绑定使用
v-if作用和v-show一样 但是会根据数值是否为true来销毁重建元素以及绑定的数据
代码哈士奇
2021/01/26
5870
VUE2快速入门(三)---数据声明和绑定使用
body标签中相关标签
字体标签包含:h1~h6、<font>、<u>、<b>、<strong><em>、<sup>、<sub>
py3study
2018/08/03
4.9K0
body标签中相关标签
VUE2全家桶精讲
概念:Vue (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架。
HelloWorldZ
2024/03/20
5560
VUE2全家桶精讲
Vue 模板语法 插值操作 绑定属性 计算属性 事件监听 条件判断 循环遍历 阶段案例
Vue是一个用于构建用户界面的渐进式框架。与其他大型框架不同的是,Vue被设定为能够由底往上,逐层应用。其不仅语法简单,而且易于与其他第三方项目集成。在单页应用程序上仍能提供强大的支持
有勇气的牛排
2023/06/25
3190
推荐阅读
相关推荐
vue中v-for图片src路径错误
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验