linux下安装配置nginx

nginx:是一个高性能的反向代理服务器正向代理代理的是客户端,反向代理代理的是服务端。

这里以nginx-1.12.2版本为例子

1、首先去官网下载nginx-1.12.2.tar.gz安装包并上传到linux服务器并解压缩安装包

  1. tar -zxvf nginx-1.12.2.tar.gz
 
2、安装c++编译环境,如果已经安装过忽略即可
  1. yum install gcc gcc-c++

3. 执行命令./configure  --prefix=/mysoft/nginx-1.12.2  。/mysoft/nginx-1.12.2 这个路径是指定ngxin的安装目录.我这边直接安装到默认目录下,执行 ./configure

  安装完成

4、安装一下nginx的一些相关依赖

  1. yum -y install pcre-devel zlib-devel openssl openssl-devel

5、执行 make 命令

  然后执行 make install

6、启动nginx,进入默认安装 sbin目录:执行 ./nginx 启动nginx

  查看进程 ps aux|grep nginx:
  
  测试:

  关闭nginx:./nginx -s stop

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

配置文件 nginx.conf:

  server 配置:

  虚拟主机配置:nginx的虚拟主机配置有3种方式,基于IP的虚拟主机,基于端口号的虚拟主机,基于域名的虚拟主机,我们常用的是后面两种,我这边页主要学习后面两种。基于IP的虚拟主机主要是:增加网卡获得多ip或者增加辅助ip,修改nginx配置文件配置多ip,重启nginx服务。

  基于端口号的虚拟主机,在 http 段内配置 server 的信息,可以配置多个端口来实现基于端口的虚拟主机配置:

  1. server {
  2. listen 8081; // 监听端口
  3. server_name localhost; // 域名
  4.  
  5. location / {
  6. root html; // 静态文件存放根路径
  7. index index.html index.htm;// 主页
  8. }
  9. }
  10.  
  11. server {
  12. listen 8080; // 监听端口
  13. server_name localhost; // 域名
  14.  
  15. location / {
  16. root html; // 静态文件存放根路径
  17. index index.html index.htm;// 主页
  18. }
  19. }

  基于域名的虚拟主机,要实现效果可以自己去购买域名。如果仅为调试可以修改本地host映射文件来实现。配置如下:

  1. server {
  2. listen 80; // 监听端口
  3. server_name www.wuzz.com ; // 域名
  4.  
  5. location / {
  6. root html; // 静态文件存放根路径
  7. index index.html index.htm;// 主页
  8. }
  9. }
  10.  
  11. server {
  12. listen 80; // 监听端口
  13. server_name www.wuzz1.com; // 域名
  14.  
  15. location / {
  16. root html; // 静态文件存放根路径
  17. index index.html index.htm;// 主页
  18. }
  19. }

  location 配置:

  语法规则:   location [ = | ~ | ~* | ^~ ]  /uri/   { … }

   = : 开头表示精确匹配。

  ^~  :开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。前缀匹配。
  ~ : 开头表示区分大小写的正则匹配。
  ~* :开头表示不区分大小写的正则匹配。
  !~ !~* :分别为区分大小写不匹配及不区分大小写不匹配的正则。
  /  :通用匹配,任何请求都会匹配到。
  多个location配置的情况下匹配顺序为:
    首先匹配 = (精准匹配),其次匹配^~ (普通匹配), 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
  配置示例如下:
  1. 1 location = /
  2. 2 location = /index
  3. 3 location ^~ /static/
  4. 4 location ^~ /static/files/
  5. 5 location ~ \.(gif|png|js|css)$
  6.  
  7. http://192.168.254.138/ ->会匹配到1
  8. http://192.168.254.138/index -> 2
  9. http://192.168.254.138/static/files/1.txt -> 4
  10. http://192.168.254.138/mic.png -> 5

  在实际生产环境中建议配置如下:

  1. location =/ {
  2. }
  3.  
  4. location / {
  5. }
  6.  
  7. location ~* \.(gif|....)${
  8. }

  nginx有五大优点:模块化、事件驱动、异步、非阻塞、多进程单线程。其中,模块化设计类似于面向对象中的接口类,它增强了nginx源码的可读性、可扩充性和可维护性。总共有5大一类模块:core、conf、event、http、mail,和48个二类模块(我自己的安装版本)。

  Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

  Nginx的模块从结构上分为核心模块、基础模块和第三方模块:

    核心模块:http 模块、event 模块和  mail 模块(ngx_http_core_module)

    基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,(ngx_http_access_module)

    第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。

  用户根据自己的需要开发的模块都属于第三方模块。正是有了这么多模块的支撑,Nginx的功能才会如此强大。

  Nginx的模块从功能上分为如下三类:

    Handlers(处理器模块)。此类模块直接处理请求,并进行输出内容和修改headers信息等操作。Handlers处理器模块一般只能有一个。

    Filters (过滤器模块)。此类模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出。

    Proxies (代理类模块)。此类模块是Nginx的HTTP Upstream之类的模块,这些模块主要与后端一些服务比如FastCGI等进行交互,实现服务代理和负载均衡等功能。

如何添加第三方模:

  1. 原来所安装的配置,你必在重新安装新模块的时候,加上。

  2. 不能直接make install。

  可以通过 nginx -v 查看原先安装模块的配置。比如我这边需要添加两个模块,一个是状态监控模块,一个是随机主页。先查看原先配置:

  原先都是默认安装,然后执行本次添加模块的命令:./configure  --with-http_stub_status_module --with-http_random_index_module

  安装完成,执行 make ,不要重新 make install ,重新安装后会覆盖原先的所有东西。 这边还需要执行以下命令:cp objs/nginx /usr/local/nginx/sbin/nginx。我这边安装在/usr/local/nginx/sbin/nginx。

  重新加载配置文件或者重启服务。访问 192.168.254.138/status 如下:

  nginx 状态信息解释如下:

    Active connections:当前状态,活动状态的连接数,这里是1。

    accepts:统计总值,已经接受的客户端请求的总数,这里是1。

    handled:统计总值,已经处理完成的客户端请求的总数,这里是1。

    requests:统计总值,客户端发来的总的请求数,这里是1。

    Reading:当前状态,正在读取客户端请求报文首部的连接的连接数,这里是0。

    Writing:当前状态,正在向客户端发送响应报文过程中的连接数,这里是1。

    Waiting:当前状态,正在等待客户端发出请求的空闲连接数,这里是0。

  对于随即主页模块 http_random_index_module,我们需要在 location 中打开此功能,打开后凡是以/结尾的请求,都会随机展示当前目录下的文件作为首页,我这里是html 目录下,配置如下:

  1. location / {
  2. root html;
  3. random_index on;
  4. index index.html index.htm;
  5. }

  重新加载配置文件或者重新启动服务,疯狂刷新页面你会看到随机的效果。

linux下安装nginx及初步认识的更多相关文章

  1. 【云服务器部署】---Linux下安装nginx

    [云服务器部署]---Linux下安装nginx 之前两篇,分别讲了:Linux下安装MySQL  和  springboot项目部署云服务器 nginx安装也是挺简单的.具体步骤如下: 第一步,下载 ...

  2. linux 下 安装nginx及压力测试

    linux 编译安装nginx,配置自启动脚本 下载nginx: wget http://nginx.org/download/nginx-1.8.0.tar.gz下载openssl : wget h ...

  3. linux 下安装 nginx

    安装nginx版本为1.7.5 一.下载nginx 官方地址:http://www.nginx.org/ 下载地址:http://nginx.org/download/ Nginx官网提供了三个类型的 ...

  4. Linux下安装Nginx并配置一个图片服务器

    首先安装nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没 ...

  5. linux下安装nginx和配置

    1.系统:centos6.8 2.安装准备: 安装nginx前,我们首先要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件,可通过如图所示命令进 ...

  6. linux下安装nginx+php+mysql环境 详细教程

    话不多说上代码 linux环境:centos 7.0 64位 nginx:nginx-1.8.0.tar.gz php: php-7.1.1.tar.gz mysql: mysql-5.6.21.ta ...

  7. Linux下安装Nginx服务器

    安装Nginx之前,首先要安装好编译环境gcc和g++,然后以CentOS为例安装Nginx,安装Nginx需要PRCE库.zlib库和ssl的支持,除了ssl外其他的我们都是去官网下载: Nginx ...

  8. Linux下安装Nginx详细图解教程

    什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...

  9. linux下安装nginx、pcre、zlib、openssl

    1.安装nginx之前需要安装PCRE库的安装  最新下载地址   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ tar –zxvf p ...

随机推荐

  1. vue项目使用element-ui的Tooltip 无效

    我之前要使用vue开发一个项目,使用到了element-UI的Tooltip 组件 <el-tooltip class="item" effect="dark&qu ...

  2. Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(理解)

    0 - 人体姿态识别存在的挑战 图像中的个体数量.尺寸大小.位置均未知 个体间接触.遮挡等影响检测 实时性要求较高,传统的自顶向下方法运行时间随着个体数越多而越长 1 - 整体思路 整个模型架构是自底 ...

  3. 20165337实验三——敏捷开发与XP实践

    实验要求 实验三-1 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考 http://www.c ...

  4. RabbitMQ channel 参数详解

    1.Channel 1.1 channel.exchangeDeclare(): type:有direct.fanout.topic三种durable:true.false true:服务器重启会保留 ...

  5. CF1091F New Year and the Mallard Expedition

    题目地址:CF1091F New Year and the Mallard Expedition 题意比较复杂,整理一下: \(n\) 段,每段有两个属性:长度,地形(G,W,L) 有三种运动方式: ...

  6. codevs 1080 线段树练习(线段树)

    题目: 题目描述 Description 一行N个方格,开始每个格子里都有一个整数.现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和:修改的规则是指定某一个格子x ...

  7. C# List 作为参数传递的值变化

    一.示例演示 namespace TestConsole { class Program { static void Main(string[] args) { Console.WriteLine(& ...

  8. Linux中error while loading shared libraries错误解决办法

    默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定--prefix,会将库安装在/usr/local/lib目录下:当运行程序需要链接动态库 ...

  9. [转载]Maximum Flow: Augmenting Path Algorithms Comparison

    https://www.topcoder.com/community/data-science/data-science-tutorials/maximum-flow-augmenting-path- ...

  10. tomcat apr 部署

    背景 这还是为了高并发的事,网上说的天花乱坠的,加了apr怎么怎么好,我加了,扯淡.就是吹牛用.我还是认为,性能问题要考设计逻辑和代码解决,这些都是锦上添花的. 步骤 1 windows 部署简单,虽 ...