一、概述

1.1、Nginx是什么

  Nginx是一款轻量级的Web服务器,也是一款轻量级的反向代理服务器【常用】。

1.2、Nginx能干什么

Nginx能干的事情很多,这里简要罗列一些:

  1:直接支持Rails和PHP的程序
  2:作为HTTP反向代理服务器
  3:作为负载均衡服务器
  4:作为邮件代理服务器
  5:帮助实现前端动静分离

1.3、Nginx特点

  高稳定、高性能、资源占用少、功能丰富、模块化结构、支持热部署

二、安装配置

2.1、源码安装

环境:CentOS 安装

function nginx_install() {
echo "nginx init start ######"
if [ -e nginx-1.15..tar.gz ]; then
echo "exist nginx-1.15.12.tar.gz"
else
echo "nginx download start ……"
wget http://nginx.org/download/nginx-1.15.12.tar.gz
echo "nginx download end ……"
fi echo "nginx install start ……"
yum -y install gcc-c++
yum -y install pcre*
yum -y install openssl* tar -zvxf nginx-1.15..tar.gz
rm -rf $ mkdir -p $
mkdir -p $/run cd nginx-1.15.
# 指定目录安装
./configure --prefix=$ --conf-path=$/conf/nginx.conf
make && make install # 拷贝配置
mv $/conf/nginx.conf $/conf/nginx.conf.default
cp ${project_path}/nginx.conf $/conf/nginx.conf
mkdir -p $/run
rm -rf nginx-1.15.
echo "nginx install end ……"
echo "nginx init end ######"
}

使用

nginx_install '/export/servers/nginx'

安装注意

cp: "conf/koi-win" 与"/application/nginx-1.6.3/conf/koi-win" 为同一文件

错误原因:安装目录和解压后的安装包为同一个目录。

解决办法:将安装包移动到另外的一个目录,或者重新选择安装路径。

安装配置:附2.2、常见的Nginx安装配置选项

2.2、yum安装

更新yum源文件:

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安装Nginx:

yum -y install  nginx

操作命令:

systemctl start nginx; #启动Nginx
systemctl stop nginx; #停止Nginx

2.2、mac上nginx安装

安装brew:go-001-环境部署,IDEA插件

安装nginx:

brew search nginx
brew install nginx

当然也可以编译安装

安装完以后,可以在终端输出的信息里看到一些配置路径:

/usr/local/etc/nginx/nginx.conf (配置文件路径)

/usr/local/var/www (服务器默认路径)

/usr/local/Cellar/nginx/1.xx.0 (安装路径)

三、使用

3.1、基本使用

测试配置文件:安装路径下的:/nginx/sbin/nginx -t

启动:安装路径下的:/nginx/sbin/nginx

停止安装路径下的:/nginx/sbin/nginx -s stop  或者是 :nginx -s quit

重启安装路径下的:/nginx/sbin/nginx -s reload

查看进程:ps -ef |grep nginx

注意:安装过后,如果从外面访问不了,多半是被防火墙挡住了,可以关闭掉防火墙:/sbin/service iptables stop

3.2、基本配置

默认启动Nginx时,使用的配置文件是: 安装路径/conf/nginx.conf 文件,可以在启动nginx的时候,通过-c来指定要读取的配置文件

常见的配置文件有如下几个:

  nginx.conf:应用程序的基本配置文件
  mime.types:MIME类型关联的扩展文件
  fastcgi.conf:与fastcgi相关的配置
  proxy.conf:与proxy相关的配置
  sites.conf:配置Nginx提供的网站,包括虚拟主机

Nginx的进程结构

  启动Nginx的时候,会启动一个Master进程,这个进程不处理任何客户端的请求,主要用来产生worker进程,一个worker进程用来处理一个request。

Nginx模块分为:核心模块、事件模块、标准Http模块、可选Http模块、邮件模块、第三方模块和补丁等

Nginx基本模块:所谓基本模块,指的是Nginx默认的功能模块,它们提供的指令,允许你使用定义Nginx基本功能的变量,在编译的时候不能被禁用,包括:

  核心模块:基本功能和指令,如进程管理和安全
  事件模块:在Nginx内配置网络使用的能力
  配置模块:提供包含机制

常见的核心模块指令,大部分都是放置在配置文件的顶部具体的指令,请参看nginx的官方文档,非常详细,参见:http://nginx.org/en/docs/ngx_core_module.html

常见的events模块指令,大部分都是放置在配置文件的顶部具体的指令,在上面那个文档里面,命令的context为events的就是events模块指令,只能在events里面使用

附2.2、常见的Nginx安装配置选项

编译参数可能会根据版本的不同进行变化,./configure --help查看编译参数列表,常见的选项如下:

--prefix=<path> - 安装路径,如果没有指定,默认为/usr/local/nginx。
 --sbin-path=<path> - nginx可执行命令的文件,如果没有指定,默认为<prefix>/sbin/nginx。
 --conf-path=<path> - 在没有使用-c参数指定的情况下nginx.conf的默认位置,如果没有指定,默认为<prefix>/conf/nginx.conf。
 --pid-path=<path> - nginx.pid的路径,如果没有在nginx.conf中通过“pid”指令指定,默认为<prefix>/logs/nginx.pid。
 --lock-path=<path> - nginx.lock文件路径,如果没有指定,默认为<prefix>/logs/nginx.lock。
 --error-log-path=<path> - 当没有在nginx.conf中使用“error_log”指令指定时的错误日志位置,如果没有指定,默认为<prefix>/logs/error.log。
 --http-log-path=<path> - 当没有在nginx.conf中使用“access_log”指令指定时的访问日志位置,如果没有指定,默认为<prefix>/logs/access.log。
 --user=<user> - 当没有在nginx.conf中使用“user”指令指定时nginx运行的用户,如果没有指定,默认为“nobody”。
 --group=<group> - 当没有在nginx.conf中使用“user”指令指定时nginx运行的组,如果没有指定,默认为“nobody”。
 --builddir=DIR - 设置构建目录。
 --with-rtsig_module - 启用rtsig模块。

--with-select_module –without-select_module - 如果在configure的时候没有发现kqueue, epoll,rtsig或/dev/poll其中之一,select模块始终为启用状态。
 --with-poll_module –without-poll_module - 如果在configure的时候没有发现kqueue, epoll,rtsig或/dev/poll其中之一,poll模块始终为启用状态。
 --with-http_ssl_module - 启用ngx_http_ssl_module,启用SSL支持并且能够处理HTTPS请求。需要OpenSSL,在Debian系统中,对应的包为libssl-dev。
 --with-http_realip_module - 启用ngx_http_realip_module
 --with-http_addition_module - 启用ngx_http_addition_module
 --with-http_sub_module - 启用ngx_http_sub_module
 --with-http_dav_module - 启用ngx_http_dav_module
 --with-http_flv_module - 启用ngx_http_flv_module
 --with-http_stub_status_module - 启用”server status”(服务状态)页

--without-http_charset_module - 禁用ngx_http_charset_module
 --without-http_gzip_module - 禁用ngx_http_gzip_module,如果启用,需要zlib包。
 --without-http_ssi_module - 禁用ngx_http_ssi_module
 --without-http_userid_module - 禁用ngx_http_userid_module
 --without-http_access_module - 禁用ngx_http_access_module
 --without-http_auth_basic_module - 禁用ngx_http_auth_basic_module

--without-http_autoindex_module - 禁用ngx_http_autoindex_module
 --without-http_geo_module - 禁用ngx_http_geo_module
 --without-http_map_module - 禁用ngx_http_map_module
 --without-http_referer_module - 禁用ngx_http_referer_module
 --without-http_rewrite_module - 禁用ngx_http_rewrite_module。如果启用,需要PCRE包。
 --without-http_proxy_module - 禁用ngx_http_proxy_module
 --without-http_fastcgi_module - 禁用ngx_http_fastcgi_module
 --without-http_memcached_module - 禁用ngx_http_memcached_module
 --without-http_limit_zone_module - 禁用ngx_http_limit_zone_module
 --without-http_empty_gif_module - 禁用ngx_http_empty_gif_module
 --without-http_browser_module - 禁用ngx_http_browser_module
 --without-http_upstream_ip_hash_module - 禁用ngx_http_upstream_ip_hash_module
 --with-http_perl_module - 启用ngx_http_perl_module
 --with-perl_modules_path=PATH - 为perl模块设置路径
 --with-perl=PATH - 为perl库设置路径
 --http-client-body-temp-path=PATH - 为http连接的请求实体临时文件设置路径,如果没有指定,默认为<prefix>/client_body_temp

--http-proxy-temp-path=PATH - 为http代理临时文件设置路径,如果没有指定,默认为<prefix>/proxy_temp
 --http-fastcgi-temp-path=PATH - 为http fastcgi临时文件设置路径,如果没有指定,默认为<prefix>/fastcgi_temp
 --without-http - 禁用HTTP服务
 --with-mail - 启用IMAP4/POP3/SMTP代理模块
 --with-mail_ssl_module - 启用ngx_mail_ssl_module
 --with-cc=PATH - 设置C编译器路径
 --with-cpp=PATH - 设置C预处理器路径
 --with-cc-opt=OPTIONS - 变量CFLAGS中附加的参数,用于FreeBSD中的PCRE库,同样需要指定–with-cc-opt=”-I /usr/local/include”,如果我们使用select()函数则需要同时增加文件描述符数量,可以通过–with-cc-opt=”-D FD_SETSIZE=2048”指定。
 --with-ld-opt=OPTIONS - 通过连接器的附加参数,用于FreeBSD中的PCRE库,同样需要指定–with-ld-opt=”-L /usr/local/lib”。
 --with-cpu-opt=CPU - 指定编译的CPU,可用的值为: pentium, pentiumpro, pentium3, pentium4,athlon, opteron, amd64, sparc32, sparc64, ppc64
 --without-pcre - 禁用PCRE库文件,同时将禁用HTTP rewrite 模块,如果要在”location”指令中使用正则表达式,同样需要PCRE库。

--with-pcre=DIR - 设置PCRE库源文件路径。
 --with-pcre-opt=OPTIONS - 在编译时为PCRE设置附加参数。
 --with-md5=DIR - 设置md5库源文件路径。
 --with-md5-opt=OPTIONS - 在编译时为md5设置附加参数。
 --with-md5-asm - 使用md5汇编源。
 --with-sha1=DIR - 设置sha1库源文件路径。
 --with-sha1-opt=OPTIONS - 在编译时为sha1设置附加参数。
 --with-sha1-asm - 使用sha1汇编源。
 --with-zlib=DIR - 设置zlib库源文件路径。
 --with-zlib-opt=OPTIONS - 在编译时为zlib设置附加参数。
 --with-zlib-asm=CPU - 为指定的CPU使用zlib汇编源进行优化,可用值为: pentium, pentiumpro。
 --with-openssl=DIR - 设置openssl库源文件路径。
 --with-openssl-opt=OPTIONS - 在编译时为openssl设置附加参数。
 --with-debug - 启用debug记录。
 --add-module=PATH - 增加一个在PATH中的第三方模块。

004-nginx简介、安装配置【源码安装和mac安装】、基本使用的更多相关文章

  1. linux 下的两种软件安装方式 —— 源码(编译、安装),编译好的二进制(直接安装)

    我们以 GPG(加密工具)为例来说明两种安装方式的区别: 源码(Source code releases,名称中则会含有src等说明信息,tarball:source),先编译再安装 GPU 的源码地 ...

  2. 【运维技术】Nginx安装教程(yum安装,源码编译)

    安装方式 yum直接更新源安装 源码直接编译之后安装 使用yum进行直接安装 Installing a Prebuilt CentOS/RHEL Package from an OS Reposito ...

  3. nginx + mysql + php相关源码包及安装

    nginx + mysql + php安装 引言 完整的搭建一个nginx+php-fpm+mysql的服务器,一直是我向做的,不过一致没有完成过,这次工作需要,终于安装成功了 我列出了我遇到的一些问 ...

  4. 第22章 软件安装:源码与Tarball

    开放源码的软件安装与升级简介 什么是开放源码.编译程序与可执行文件 开放源码:程序代码,写给人类看的程序语言 编译程序:将源码编译成机器能看得懂的语言 可执行文件:经过编译变成二进制程序后机器看得懂可 ...

  5. LNMP架构的源码编译以及yum安装

    LNMP架构的源码编译以及yum安装 目录 LNMP架构的源码编译以及yum安装 一.LNMP架构的编译安装 1. 安装nginx服务 (1)关闭防火墙 (2)安装依赖包 (3)创建运行用户 (4)编 ...

  6. hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档

    相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...

  7. Linux学习笔记15—RPM包的安装OR源码包的安装

    RPM安装命令1. 安装一个rpm包rpm –ivh 包名“-i” : 安装的意思“-v” : 可视化“-h” : 显示安装进度另外在安装一个rpm包时常用的附带参数有:--force : 强制安装, ...

  8. centos中软件源码简单的编译安装./configure,make ,make install

    参考 Linux下源码编译安装详解 源码编译安装分三个步骤 1. 编译参数配置 2. 编译 3. 安装 1. 源码编译安装环境检查以及编译参数配置 编译器在开始工作之前,需要知道当前的系统环境,比如标 ...

  9. linux操作之软件安装(二)(源码安装)

    源码安装 linux上的软件大部分都是c语言开发的 , 那么安装需要gcc编译程序才可以进行源码安装. yum install -y gcc #先安装gcc 安装源码需要三个步骤 1) ./confi ...

  10. 从源码解析Electron的安装为什么这么慢

    前言 Electron作为一款跨平台的桌面应用端解决方案已经风靡全球.作为开发者,我们几乎不用关心与操作系统的交互,直接通过Web前端技术与Electron提供的API就可以完成桌面应用端的开发. 然 ...

随机推荐

  1. jquery-deferred应用

    我们说jquery1.5之后用的用deferred,那么deferred到底是个什么东西,看个例子 var wait = function(){ var task = function(){ cons ...

  2. 并发编程大师系列之:线程的定义和中断 interrupt

    1.启动线程的三种方式: 1.1继承Thread类 public static class UseThread extends Thread { public void run() { System. ...

  3. 什么是Log4j,Log4j详解!

    由于时间紧急,自己就不写了.一下转载链接: https://www.cnblogs.com/ITtangtang/p/3926665.html

  4. 两数最大公约数 GCD

    原理辗转相除法. public int gcd(int i, int j) { if (i == 0 || j == 0) { return 0; } int a = 0, b = 0; if (i ...

  5. How To Use The Repository Pattern In Laravel

    The Repository Pattern in Laravel is a very useful pattern with a couple of great uses. The first us ...

  6. SD六校联考二轮

    数据差评 D1T1 string 直接模拟 每次 string_u = const_string + string_v 理论得分 30 实际可得 100 D2T1 n^2 理论得分 30 实际可得 1 ...

  7. linux系列(十七):whereis命令

    1.命令格式: whereis [-bmsu] [BMS 目录名 -f ] 文件名 2.命令功能: whereis命令是定位可执行文件.源代码文件.帮助文件在文件系统中的位置.这些文件的属性应属于原始 ...

  8. Input类中常用的验证方式

    Deolin一般将Input类对象作为POST请求方法的参数, Input类的域与前端的数据结构一一对应,由于后端不应该相信前端传过来的任何数据, 所以前端的数据对象先绑定到Input对象中,通过JS ...

  9. Python操作Jira

    目录 认证 项目(Project) 问题(Issue) 配置域(Fields) 关注者/评论/附件 创建/分配/转换问题 搜索 Jira提供了完善的RESTful API,如果不想直接请求API接口可 ...

  10. 前端武器库之jQuery示例

    1.全选 反选 取消 相关知识点: - 选择器 - .prop $('#tb:checkbox').prop('checked'); 获取值 $('#tb:checkbox').prop('check ...