Nginx是什么?

  Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx优点:   

(1)高性能  

在正常情况下,单次请求会得到更快的响应;

在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求。

apache是同步多进程模型,一个连接对应一个进程;

nginx是异步的,多个连接(万级别)可以对应一个进程 。

(2)高扩展性,跨平台   

(3)稳定性高:用于反向代理,宕机的概率微乎其微   

(4)低内存消耗   

一般情况下,10 000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。   

(5)单机支持10万以上的并发连接   

Nginx 相对于 Apache 优点如下:

  1. 高并发响应性能非常好,官方 Nginx 处理静态文件并发 5w/s

  2. 负载均衡及反向代理性能非常强;

  3. 系统内存和 CPU 占用率低;

  4. 可对后端服务进行健康检查;

  5. 支持 PHP cgi 方式和 FastCGI 方式;

  6. 可以作为缓存服务器、邮件代理服务器;

  7. 配置代码简洁且容易上手。

apache相对于nginx的优点:

    1. Rewrite比nginx的rewrite强大 (rewrite的主要功能就是实现统一资源定位符URL的跳转)

    2. 模块多,基本想到的都可以找到

    3. 少bug, nginx的bug相对较多

    4. 超稳定

nginx作单纯的WEB服务器,也就是放静态内容,性能上比Apache要好,特别可承受压力、带宽及资源消耗上都要优于Apache。
很多大型网站都喜欢把nginx放在前端,Apache作为后端。
 

二、编译安装Nginx服务的操作步骤

1.环境准备

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

2.安装依赖包

yum install -y pcre-devel zlib-devel gcc gcc-c++ make

3.创建运行用户

useradd -M -s /sbin/nologin nginx

4.编译安装nginx

cd /opt

tar zxvf nginx-1.12.0.tar.gz

cd nginx-1.12.0/

./configure \

--prefix=/usr/local/nginx \ #指定安装路径

--user=nginx \ #指定用户名

--group=nginx \ #指定组名

--with-http_stub_status_module

make && make install -j4

5.路径优化

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

6.添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

chmod 754 /lib/systemd/ system/nginx.service

systemctl start nginx.service

systemctl enable nginx.service

 

 

三、配置文件了解

1.主配置文件

vim /usr/local/nginx/conf/nginx.conf

全局配置:

user nginx nginx; #Nginx用户及组:用户 组。window下不指定

worker_processes 1; #工作进程:数目

error_log logs/error.log;

error_log logs/error.log notice;

error_log logs/error.log info; #错误日志:存放路径。

pid logs/nginx.pid; #pid(进程标识符):存放路径。

worker_rlimit_nofile 204800; #指定进程可以打开的最大描述符:数目。

这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

I/O事件配置:

events {

use epoll; #使用epoll模型

worker_connections 4096; #每个进程处理 4096个连接

}

      

HTTP模块配置:    

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"';

#access_log logs/access.log main;

sendfile on; #tcp_nopush on;

#keepalive_timeout 0; keepalive_timeout 65; #连接保持超时时间,单位是秒

#gzip on;

server {

listen 80;                 #监听地址及端口

server_name localhost;

#charset utf-8;          #网页的默认字符集

#access_log logs/host.access.log main;

location / {

root html; #根目录配置

index index.html index.htm; #默认首页文件名

}

#error_page 404 /404.html;

redirect server error pages to the static page /50x.html

# error_page 500 502 503 504 /50x.html; #内部错误的反馈页面

location = /50x.html {                          #错误页面配置

root html;

}

}

  #用了log_format指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径;

是nginx中最频繁配置的部分,而且这里也包含两个小块,分别为全局块和server块。主要影响nginx的性能。  

状态统计配置

location /status {                                               #访问位置为/status

stub_status on;                        #打开状态统计功能

access_log off;                        #关闭此位置的日志记录

}

授权的访问控制

#添加认证配置

auth basic "secret";              #设置密码提示框文字信息

auth_basic_user_file /usr/local/nginx/passwd.db;

客户端访问控制

location / {

root html;

index index.html index.htm;

auth_basic "secret";

auth_basic_user_file /usr/local/nginx/passwd.db;

#添加控制规则

deny 192.168.2.66;                     #拒绝访问的客户端IP

allow all;                                      #允许其他所有客户端访问

}

 
 
 
 
 
 
 
 
 

nginx概述及配置的更多相关文章

  1. Nginx概述及安装配置

    1.概述 Nginx是一款开源的,高性能的Http和反向代理服务器,同时也是一个IMAP.POP3.SMTP代理服务器:Nginx可以作为一个HTTP服务器进行网站的发布处理,也可以作为反向代理进行负 ...

  2. 正向代理/反向代理理解、Nginx概述、安装及配置详解

    一.Nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理, ...

  3. Nginx概述、安装及配置详解

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  4. Nginx的概述和配置

    一.Nginx概述 1.1Nginx的特点 (1)一款高性能.轻量级web服务 稳定性高 系统资源消耗低高 对HTTP并发连接的处理能力 (2)单台物理服务器可支持30000~50000个并发请求 1 ...

  5. LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  6. 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置

    1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...

  7. Nginx概述和安装(1)

    一.Nginx概述 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 I ...

  8. Nginx安装及配置详解

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  9. Nginx安装及配置详解包括windows环境

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

随机推荐

  1. 团队Beta2

    队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 **过去两天完成了哪些任务 ** 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 接下来的计划 完成短租车,页面美化 **还 ...

  2. 面试官问:浏览器输入 URL 回车之后发生了什么?

    一个执着于技术的公众号 前言 这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊,然后就自己做了一篇笔记,感觉比之前理解更透彻了. 注意:本文的步骤是建立在,请 ...

  3. JUC的数据库连接池小练习

    JUC练习数据库连接池实现 通过一个连接数组来充当连接池 一个原子的标记数组 通过cas来保持多线程下的安全,用synchronized来进行暂停和唤醒 @Slf4j public class MyC ...

  4. C# settings 文件基础用法

    原文 自定义设置项类型 Serializable 修饰的枚举,可作为设置项类型 [Serializable] public enum DeviceBrand { None = 0, [Descript ...

  5. Win10系统下怎么让局域网内其他电脑通过IP访问网站

    最近,有位win10系统用户在电脑上制作好网站后,希望能让局域网内的其他电脑通过IP直接访问自己电脑的网站,以便得到更好地测试效果.可是,该用户操作了很久都没成功.那么,我们如何配置win10电脑的I ...

  6. SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别

    先上代码: declare @tb table (name varchar(10),sex int) declare @tb2 table (name varchar(10),age int) ins ...

  7. 降维、特征提取与流形学习--非负矩阵分解(NMF)

    非负矩阵分解(NMF)是一种无监督学习算法,目的在于提取有用的特征(可以识别出组合成数据的原始分量),也可以用于降维,通常不用于对数据进行重建或者编码. NMF将每个数据点写成一些分量的加权求和(与P ...

  8. 第06组Alpha冲刺 (4/6)

    目录 1.1 基本情况 1.2 冲刺概况汇报 1.郝雷明 2.曹兰英 3. 方梓涵 4.鲍凌函 5.董翔云 6.杜筱 7.黄少丹 8.曾丽莉 9. 詹鑫冰 10.吴沅静 1.3 冲刺成果展示 1.1 ...

  9. 对 Python 中 GIL 的一点理解

    GIL(Global Interpreter Lock),全局解释器锁,是 CPython 为了避免在多线程环境下造成 Python 解释器内部数据的不一致而引入的一把锁,让 Python 中的多个线 ...

  10. 渗透测试之常用的sql语句

    学习路漫漫,常用的sql语句给我们平常所运用的sql语句相差不多,用句土话讲:百变不离其中 注:网络安全时刻警醒,需要打靶的还需要建立自己的靶场,关注博主在以往博客中分享有多种创建靶场可参考 1.判断 ...