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. 1.17 想学好Linux,这些习惯必须养成(初学者必读)

    不管是在生活还是工作中,每个人都会逐渐养成一些小习惯.坏习惯一旦形成就很难改正,所在在系统学习 Linux之前,给大家一些建议,刻意去培养一些好的习惯,对自己是很有利的. 学习Linux,要习惯使用命 ...

  2. Red Hat牵头推进NVFS文件系统

    开源Linux 长按二维码加关注~ 上一篇:Linux中几个正则表达式的用法 由 Red Hat 工程师牵头的团队,正在为 Linux/开源社区研究名为 NVFS 的文件系统.NVFS 的目标是成为像 ...

  3. 撸了一个 Feign 增强包 V2.0 升级版

    前言 大概在两年前我写过一篇 撸了一个 Feign 增强包,当时准备是利用 SpringBoot + K8s 构建应用,这个库可以类似于 SpringCloud 那样结合 SpringBoot 使用声 ...

  4. GB/T 25000.51-2016 系统与软件工程、系统与软件质量要求和评价 第51部分

    中科软测认证中心(软件测评) 1.支持GB/T 25000.51的质量特性 (1)产品质量模型及特性 功能性 功能完备性 功能正确性 功能适合性 功能性的依从性 性能效率 时间特性 资源利用率 容量 ...

  5. 小米 pro 笔记本双硬盘设置引导盘

    功能键 F2 进入 BIOS F12 进入 Boot 选项 步骤 小米 Pro 默认是开启了 UEFI,如果 Boot 选项没有显示出期望的系统盘,那么就是这个系统盘没有 UEFI 分区,按照这个文档 ...

  6. MySQL8小时问题

    一.问题 获取MySQL连接,8小时内无请求自动断开连接. 二.解决 2.1 分析 MySQL服务器默认的"wait_timeout"是28800秒即8小时,意味着如果一个连接的空 ...

  7. 48. Rotate Image - LeetCode

    Question 48. Rotate Image Solution 把这个二维数组(矩阵)看成一个一个环,循环每个环,循环每条边,每个边上的点进行旋转 public void rotate(int[ ...

  8. Activate-or-Not:learning-customized-activation

    关于activate-or-Not的PPT paper code step1 step2 step3 step4 step5 step6 step7 step8 step9 step10

  9. 我用 AntV/S2 买了一套房

    背景 经过一年多的摇号,我在前两天收到了某网红盘的摇中通知.还沉浸在摇中房屋喜悦中的我,很快被售房顾问告知选房的人很多,每位购房者的选房时间都很短,必须 一分钟内 快速选房.并且,排在 400 多号的 ...

  10. Java随谈(六)## 我们真的理解 Java 里的整型吗?

    我们真的理解 Java 里的整型吗 整型是我们日常生活中最常用到的基础数据类型,看这篇文章之前,我想问: 我们真的像自己认为的那么理解 Java 内的整型吗? 也许看完本篇文章你就有自己的答案. C ...