centos 6.8安装的nginx 1.12.2

1、nginx常用的命令

  使用nginx命令前,进入到/usr/local/nginx/sbin/目录

  1)查看nginx版本

    进入到/usr/local/nginx/sbin/目录, 执行./nginx -v

  2)启动

    进入到/usr/local/nginx/sbin/目录, 执行./nginx

  3)关闭

    进入到/usr/local/nginx/sbin/目录, 执行./nginx -s stop

  4)检查配置文件是否有语法问题

  5)重新加载

    进入到/usr/local/nginx/sbin/目录, 执行./nginx -s reload

2、配置文件介绍

  /usr/local/nginx/nginx.conf

  第一部分:全局块

  从配置文件开始到events块之间的内容,主要设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行nginx服务器的用户(组)、允许生成的worker process数、进程PID存放路径、日志存放路径和类型以及配置文件的引入等。

  "worker_processes 1; "是nginx服务器并发处理服务的关键配置,worker_processes值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约。

  第二部分:events块

  events块涉及的指令主要影响nginx服务器与用户的网络连接,常用的设置包括是否开启对多work process下网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个work process可以同时支持的最大连接数等。

  "worker_connections 1024;" 支持的最大连接数为1024

   第三部分:http块

3、反向代理和负载均衡

  应该有一个nginx服务器有多个应用服务器(可以是tomcat),可以使用一台虚拟机,安装一个nginx,多个tomcat,来模拟。

  nginx的配置文件:

upstream tomcats{
server 192.168.25.148:;
server 192.168.25.148:;
} server {
listen ;
server_name tomcat.test.com;
location / {
proxy_pass http://tomcats;
index index.html index.htm;
}
}

  负载均衡: 只需要在upstream的server后面添加一个weight即可代表权重。权重越高,分配请求的数量就越多。默认权重是1。

upstream tomcats{
server 192.168.25.148: weight=;
server 192.168.25.148:;
} server {
listen ;
server_name tomcat.test.com;
location / {
proxy_pass http://tomcats;
index index.html index.htm;
}
}

————————————————————————————————

下面内容转载自:Nginx详细教程
版权声明:本文为CSDN博主「今夕何年-」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/panleiaiying/article/details/85485389

一、一个简单的Demo

worker_processes  ;  # 设置多少个进程,与cup核保持一致最好
events {
worker_connections ; # 每个进程允许的最大连接数
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
server
{
listen ;
server_name localhost;
location / {
root D:/STUDY; # 当输入[server_name]:[listen] 时会进入这个目录
index a.html; # 默认界面
}
error_page /error.html; #根据错误码跳转到error 界面
}
}

当在浏览器中输入[server_name]:[listen] (也就是localhost:8080)时,会在location 下的root对应的文件夹中找index 对应的界面(也就是a.html);

每次修改完conf 文件,可以用以下指令校验conf 配置是否合法

nginx -t -c "/etc/nginx/nginx.conf"   #校验文件合法

location的配置规则:

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

)= 开头表示精确匹配
)^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
)~ 开头表示区分大小写的正则匹配
)~* 开头表示不区分大小写的正则匹配
)!和!*分别为区分大小写不匹配及不区分大小写不匹配 的正则
)/ 通用匹配,任何请求都会匹配到。
)多个location配置的情况下匹配顺序为
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求

二、 Nginx 日志

在nginx 中使用日志,可以添加以下代码:

主要说一下log_format (日志的格式化):

'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'

log_fomat 为日志输出格式
remote_addr: 客户端地址
remote_user:认证的用户名,没有开启不会显示
time_local : nginx 服务器时间
request : request头的请求行(里面包含服务器的地址后半部分)
status : 状态码
body_bytes_sent : 服务端响应给客户端的body信息大小
http_referer : 上一级url 的地址
http_user_agent: 客户端使用代理(比如使用什么访问的)
http_x_forwarded_for : 每一级请求所携带的http 信息

下面为一段输出的日志,可以跟上述的format 对比一下

127.0.0.1 - - [/Dec/::: +] "GET /aa HTTP/1.1"   "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" "-"
127.0.0.1 - - [/Dec/::: +] "GET /aa HTTP/1.1" "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" "-"

 三、Nginx Modules (模块)

当我们输入nginx -V 时,会输出很多参数, 这些参数中就有很多以with-******_module格式的参数, 这些参数为nginx 的功能模块,我们说一下基础的模块:

1、 --with-http_stub_status_module (查看nginx 客户端连接状态)

配置语法:

Syntax:    stub_status;
Default: —
Context: server, location

配置方式

location /mystatus{
stub_status;
}

浏览器请求

当前活跃的连接数
接受 处理 总连接
读 写 等待

2、 --with-http_random_index_module (随机选择一个文件做主页)

语法:

Syntax:    index file ...;
Default:
index index.html;
Context: http, server, location


会在指定目录下随机选择主页

3、 --with-http_sub_module (http内容替换)
语法:

Syntax:    sub_filter string replacement;
Default: —
Context: http, server, location

demo:

location / {
sub_filter '<a href="http://127.0.0.1:8080/' '<a href="https://$host/';
sub_filter '<img src="http://127.0.0.1:8080/' '<img src="https://$host/';
sub_filter_once on;
}
sub_filter 'other' 'haochen';  #只替换一个字符
# 如果替换多个字符,就添加一段代码
sub_filter_once off #关闭扣替换所有字符

4、 连接限制和请求限制

语法

Syntax:    limit_conn_zone key zone=name:size;
Default: —
Context: http Syntax: limit_conn zone number;
Default: —
Context: http, server, location
Syntax:    limit_req_zone key zone=name:size rate=rate [sync];
Default: —
Context: http Syntax: limit_req zone=name [burst=number] [nodelay | delay=number];
Default: —
Context: http, server, location

限制请求的条数:

limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;
#location 下
limit_req zone=req_zone burst= nodelay;

上述表示 每秒执行一条请求, 三条作为缓存,其他的限制执行

连接限制:

limit_conn_zone $binary_remote_addr zone=conn_zone:1m
#location 、server
limit_conn conn_zone ;

上述表示一个同一时刻只能有一个连接过来

压力测试工具安装:

yum install httpd-tool
ab -n -c www.baidu.com // 请求总数20 并发20

更多介绍查看官网文档 http://nginx.org/en/docs/

5、访问控制

配置语法:

Syntax:    allow address | CIDR | unix: | all;
Default: —
Context: http, server, location, limit_except Syntax: deny address | CIDR | unix: | all;
Default: —
Context: http, server, location, limit_except

demo

location / {
deny 192.168.1.1;
allow 192.168.1.0/;
allow 10.1.1.0/;
allow :0db8::/;
deny all;
}

6、 http_auth_basic_module(用户登录认证)

对客户端的请求进行登录验证

配置语法:

Syntax:    auth_basic string | off;
Default:
auth_basic off;
Context: http, server, location, limit_except Syntax: auth_basic_user_file file;
Default: —
Context: http, server, location, limit_except

首先要生成一个保存用户名和密码的配置文件,可以使用htpassword 加密:

htpasswd -c auth.conf panlei

nginx.conf 中配置

location / {
auth_basic "closed site";
auth_basic_user_file conf/auth.conf;
}

访问效果

四、各种使用场景

1、 静态资源

语法: tcp_nopush on | off;
默认值: tcp_nopush off;
上下文: http, server, location

选项仅在使用sendfile的时候才开启
结果就是数据包不会马上传送出去,等到数据包最大时,一次性的传输出去,这样有助于解决网络堵塞。

语法: tcp_nodelay on | off;
默认值: tcp_nodelay on;
上下文: http, server, location

提高网络的实时性

语法:    gzip on | off;
默认值: gzip off;
上下文: http, server, location, if in location

压缩运输

各项参数
gzip_comp_level ; # 压缩比例
gzip_http_version 1.1 #压缩版本
gzip_types text/html #文件格式

2、 代理

语法:    proxy_pass URL;
Default: —
上下文: location, if in location, limit_except

一个简单的demo:

server {
listen ;
server_name 192.168.136.130;
location ~ /login$ {
proxy_pass http://192.168.1.116:8081;
}
}

访问130/login 会被转发到116:8081/login

使用代理经常用的属性:

proxy_redirect default;

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout ;
proxy_send_timeout ;
proxy_read_timeout ; proxy_buffer_size 32k;
proxy_buffering on;
proxy_buffers 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;

如果只让特定ip 访问:

# 仅允许116.62.103. 访问
location / {
if ( $http_x_forwarded_for !~* "^116\.62\.103\.228") {
return ;
}
root /opt/app/code;
index index.html index.htm;
}

3、负载均衡

语法: upstream name {} ,多配制在http 层。

demo:

upstream pl{
server 192.168.1.251: down;
server 192.168.1.252: backup;
server 192.168.1.253: max_fails= fail_timeout=10s;
}
server {
listen ;
server_name 192.168.1.254;
location / {
proxy_pass http://pl;
}
}

其中每个后缀的的作用:

nginx 负载均衡默认是轮询的规则,
nginx 还有以下的轮询策略:

ip_hash 配置时,只需要在upstream 中添加关键字 ip_hash 就可以
hash 配置同上, 例如 hash $request_uri

————————————————————————————————
版权声明:本文为CSDN博主「今夕何年-」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/panleiaiying/article/details/85485389

nginx命令和配置的更多相关文章

  1. Nginx命令与配置详解

    1. 控制命令 ./sbin/nginx –t 测试配置是否正确 ./sbin/nginx –s reload 加载最新配置,进程并不重启  ./sbin/nginx –s stop  立即停止   ...

  2. nginx实战操作(常用命令及配置)

    1. nginx介绍 2. nginx常用命令 验证配置是否正确: nginx -t 查看Nginx的详细的版本号:nginx -V 查看Nginx的简洁版本号:nginx -v 启动Nginx:st ...

  3. wordpress nginx详细环境配置安装命令和相关问题解决

    很详细的有关WordPress和nginx的环境配置安装操作步骤 指南,适合新手一步步按照命令操作安装WordPress并运行在生产环境中. 操作步骤转载自: Heap Stack blog(ping ...

  4. nginx安装&负载均衡配置&nginx反爬虫&nginx命令

    Nginx安装 wget https://nginx.org/download/nginx-1.14.0.tar.gz tar -zxvf nginx-1.14.0.tar.gz cd nginx-1 ...

  5. nginx安装与配置

    一.在线安装 ubuntu 安装 sudo apt-get install nginx 安装后文件结构为: 配置文件:/etc/nginx ,并且每台虚拟主机已经安排在 /etc/nginx/site ...

  6. windows下nginx安装、配置与使用(转载)

    目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx ...

  7. 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

    阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...

  8. 高流量站点NGINX与PHP-fpm配置优化(译)

    使用Nginx搭配PHP已有7年的这份经历让我们学会如何为高流量站点优化NGINX和PHP-fpm配置. 以下正是这方面的一些提示和建议: 1. 将TCP切换为UNIX域套接字 UNIX域套接字相比T ...

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

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

随机推荐

  1. Linux 防火墙开放特定端口 (iptables)

    1.查看状态:iptables -L -n2.直接编辑:vi /etc/sysconfig/iptables3.端口开放:-A INPUT -m state --state NEW -m tcp -p ...

  2. spring data 返回任意字段

    在spring boot + spring data查询数据库的过程中,有时候总会出现一些复杂的查询,我们希望数据库返回的字段能随意改变.这个需求在mybatis里很好解决,只需要用map接收就可以, ...

  3. HDU 4292 Food (建图思维 + 最大流)

    (点击此处查看原题) 题目分析 题意:某个餐馆出售f种食物,d种饮料,其中,第i种食物有fi份,第i种饮料有di份:此时有n个人来餐馆吃饭,这n个人必须有一份食物和一份饮料才会留下来吃饭,否则,他将离 ...

  4. TCP三次握手与四次挥手详解(最全面)

    目录 TCP的三次握手与四次挥手 TCP报文段的首部格式 TCP的工作原理 TCP 的流量控制 TCP的拥塞控制 拥塞控制与流量控制的关系 拥塞控制所起的作用 慢开始和拥塞避免 慢开始算法的原理 三次 ...

  5. 如何不用 transition 和 animation 也能做网页动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/BxbQJj 可交互视频教 ...

  6. mysql连接数据库时报2003错误怎么解决

    mysql 2003是连接错误,连不上服务器. 你目前可以如下方法:进入控制面板->服务管理(我的是管理工具),->服务,然后找到Mysql服务,右键修改属性,改为自启动,以后再重启就没有 ...

  7. leecode刷题(28)-- 二叉树的前序遍历

    leecode刷题(28)-- 二叉树的前序遍历 二叉树的前序遍历 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 思路 ...

  8. axios+FormData文件上传

    axios+FormData文件上传 原理:FormData上传 创建一个FormData对象,将得到的文件流对象放在FormData内,然后使用axios上传 注意: 1.请求头设置 headers ...

  9. linux 之实现定时任务

    一.方式一 (1)命令行 的方法: 一.方式一 需求:每分钟执行一次/etc 目录的添加 到/tmp/a.txt 中 (1) touch a.txt创建文件 (2) crotab -e 进行任务的定制 ...

  10. 四,k8s集群资源清单定义入门

    目录 资源对象 创建资源的方法 清单帮助命令 创建测试清单 资源的三种创建方式 资源对象 workload:Pod, ReplicaSet, Deployment, StatefulSet, Daem ...