Nginx相关指令及配置

135.Nginx(四):nginx配置成系统服务,静态资源相关指令,压缩功能,静态资源缓存,跨域,防盗链 nginx配置成系统服务,静态资源相关指令,压缩功能,静态资源缓存,跨域,防盗链 阅读详情

一.Nginx相关指令:

1.nginx启动
  1. nginx -c /etc/nginx/nginx.conf

其中参数-c指定nginx启动时加载的配置文件,当然也可以不指定配置文件,省略-c,也可以启动,表示使用默认的配置文件。

  1. nginx

2.nginx停止

  1. nginx -s stop 或者
  2. nginx -s quit 或者
  3. pkill -9 nginx

  例如在我们的编辑环境中已经安装好了nginx,并且已启动,在命令提示符下直接输入nginx -s stop就可以停止了。

3.指令介绍

nginx -h #帮助  

nginx -v #显示版本  

nginx -V #显示版本和配置信息  

nginx -t #测试配置  

nginx -q #测试配置时,只输出错误信息  

nginx -s stop #停止服务器  

nginx -s reload #重新加载配置 

二.相关配置:

1.负载均衡(又称为负载分担),英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

  nginx的upstream目前支持4种方式的分配

  1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

  3)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

  4)、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。

  1. <span style="font-size:18px;"><span style="font-size:18px;">    upstream test1{
        ip_hash;
        server 192.168.12.133:80;
        server 192.168.12.134:80 down;
        server 192.168.12.135:8009 max_fails=3 fail_timeout=20s;
        server 192.168.12.136:8080;
        }</span></span>
  upstream是Nginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡。在上面的设定中,通过upstream指令指定了一个负载均衡器的名称ixdba.net。这个名称可以任意指定,在后面需要的地方直接调用即可。

2.相关nginx.conf分离(多个server并引入其配置),解决单台机器多个配置(*注意只能有一个最外层http,/user/local/nginx/conf/server/目录下都是相关server配置)

<span style="font-size:18px;">include /user/local/nginx/conf/server/*;</span>

3.nginx.conf中的相关server_name默认为localhost,如果需要增加域名请对应修改host文件中
127.0.0.1 www.XXX.com

4.相关超时及优化配置
<span style="font-size:18px;">1、系统及内核方面
    根据服务器用途,建议系统最小化安装或针对web服务器进行系统内核重新编译;在内核参数的一些优化,如下:
# Add
net.ipv4.tcp_max_syn_backlog = 65536   #表示SYN队列的长度
net.core.netdev_max_backlog =  32768  #进入包的最大设备队列.
net.core.somaxconn = 32768            #listen()的默认参数,挂起请求的最大数量.
net.core.wmem_default = 8388608     #指定了发送套接字缓冲区大小的缺省值
net.core.rmem_default = 8388608    
net.core.rmem_max = 16777216      #最大socket写buffer
net.core.wmem_max = 16777216     #最大socket读buffer
net.ipv4.tcp_timestamps = 0    #可以防范那些伪造的sequence号码,关掉可以提高性能。
net.ipv4.tcp_synack_retries = 2 
net.ipv4.tcp_syn_retries = 2   # 新连接,内核要发送多少个SYN连接请求才决定放弃。
net.ipv4.tcp_tw_recycle = 1     #开启TCP连接中TIME-WAIT sockets的快速回收
net.ipv4.tcp_tw_reuse = 1      #允许将TIME-WAIT sockets重新用于新的TCP连接。
net.ipv4.ip_local_port_range = 5000  65535  #将系统对本地端口范围限制在5000~65000

2、配置方面优化
   如编译时使用 --with-cc-opt='-O3' 增加GCC的优化;去掉Nginx的debug模式编译(debug模式会插入很多跟踪和ASSERT之类),这样编译后文件大小降低几倍之多;
nginx配置文件
user  www www;
worker_processes 8;   #设置为CPU数目(核数),需根据实际情况进行设置。
error_log   logs/nginx_error.log  crit;
pid        logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;  #进程能够打开的最多文件描述符数(65535)
events
{
        use epoll;  
        worker_connections 51200;  每个工作进程允许最大的同时连接数

         #服务器允许的最大连接数跟worker_processes 、worker_connections 有直接关系。
}

http
{
        include       mime.types;
        default_type  application/octet-stream;

        #charset  gb2312;
     
        server_names_hash_bucket_size 128; 
        client_header_buffer_size 32k;     #客户端请求的Head头缓冲区大小,如果cookie内容较大,需加大
        large_client_header_buffers 4 32k;   
        client_max_body_size 8m;     #设置客户端能够上传的文件大小
     
        sendfile on;
        tcp_nopush     on;
        keepalive_timeout 60;
        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 128k;
        fastcgi_intercept_errors on;
        fastcgi_hide_header Pragma;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_types       text/plain application/x-javascript text/css application/xml;
        gzip_vary on;

        autoindex off;
        server_tokens off;
        server_name_in_redirect off;
   
        include zhuji0.conf;    #实现nginx VirtualHost
}
  
3、Nginx(针对webserver)环境运行php-cgi,可配置php加速器,这样可提高nginx处理能力。可以加入php加速器eaccelerator


4、其他方面
   1)由于nginx 中有FastCGI 相关参数,FastCGI 自身的一些配置进行优化也是很重要的,我们的web环境都使用php-fpm 来管理FastCGI,可以修改配置文件中的以下值:
<value name="max_children">300</value>  #这可以根据系统负载及服务器访问量情况进行调整。
同时处理的并发请求数,即它将开启最多300 个子线程来处理并发连接。
<value name="rlimit_files">102400</value>
最多打开文件数。
<value name="max_requests">204800</value>
每个进程在重置之前能够执行的最多请求数。
   2)修改Nginx的header伪装服务器,这更多是为了服务安全。
   3)  php-fpm默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这有可能导致nginx出错或影响nginx的性能。(max_children\request_terminate_timeout等)</span>


5.什么是反向代理?
Nginx的反向代理:
反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接到客户端,此时代理服务器对外就表现为一个服务器,而此种工作模式类似于LVS-NET模型。
反向代理也可以理解为web服务器加速,它是一种通过在繁忙的web服务器和外部网络之间增加的 一个高速web缓冲服务器,用来降低实际的web服务器的负载的一种技术。反向代理是针对web服务器提高加速功能,所有外部网络要访问服务器时的所有请求都要通过它,这样反向代理服务器负责接收客户端的请求,然后到源服务器上获取内容,把内容返回给用户,并把内容保存在本地,以便日后再收到同样的信息请求时,它会将本地缓存里的内容直接发给用户,已减少后端web服务器的压力,提高响应速度。因此Nginx还具有缓存功能。
 
反向代理的工作流程:
1)用户通过域名发出访问请求,该域名被解析为反向代理服务器的IP地址;
2)反向代理服务器接收用户的请求;
3)反向代理服务器在本地缓存查找是否存在当前用户所请求的内容,找到则直接把内容返回给用户;
4)如果本地没有用户请求的内容,反向代理服务器会以自己的身份去后端服务器请求同样的信息内容,并把信息内容发给用户,如果信息内容是可以被缓存的,则会将该内容缓存在代理服务器的本地缓存中。
 
反向代理的好处:
1)解决了网站服务器对外可见的问题,提高了网站服务器的安全性;
2)节约了有限的IP地址资源,后端服务器均可使用私有IP地址与代理服务器进行通信;
3)加速了网站的访问速度,减轻了真是web服务器的负荷。

三、常见错误

如果启动失败 可以看下logs目录下 error.log 文件里的错误信息。

我在第一次安装的时遇到两个错误,也是最容易碰到的问题,在这里列出来方便大家碰到相同的问题时快速解决。

1.  端口占用问题

我的配置文件里服务侦听的是 80 端口,由于机器上部署了IIS,80端口被默认站点占用,把站点关闭就可以了,这个问题在错误日志里记录是这样的。

 

2015/01/15 10:44:12 [emerg] 8800#5988: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

 

碰到类似的错误,请确认端口是否被占用或被防火墙屏蔽

 

2.Nginx所在目录有中文

错误日志大致输出一下内容

2015/01/15 11:55:55 [emerg] 5664#8528: CreateFile() "E:\软件\nginx-1.7.8/conf/nginx.conf" failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)

3. 启用缓存时报错

2015/01/15 17:26:50 [emerg] 17068#20356: shared zone "cache_one" has no equal addresses: 02CF0000 vs 02A20000
2015/01/15 17:26:50 [alert] 11536#11228: worker process 17068 exited with code 1

我一直没有找到解决的方法,有人说重启服务,或者缓存设置大一点就可以了,我试了一下没有用的,官网 原文是这样讲的,只能认为windwos下无解了。

: The cache and other modules which require shared memory support do 
: not work in Windows Vista and later due to address space layout 
: randomization being enabled in these Windows versions.
 


最后,感谢以下是参考资料

参考资料:http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html

                    http://jingyan.baidu.com/article/7e4409533734112fc0e2ef26.html

                    http://www.cnblogs.com/liping13599168/archive/2011/04/15/2017369.html




Nginx实战:性能调优/配置优化-相关指令 nginx的性能调优 阅读详情

相关推荐

Sigrity XtractIM实战:5步搞定IC封装宽带模型提取(附BGA案例)

本文通过一个典型BGA封装案例,详细介绍了使用Cadence Sigrity XtractIM工具进行IC封装宽带模型提取的五步实战流程。内容涵盖从环境准备、参数设置、结果验证到模型导出的完整操作,重点阐述了如何利用XtractIM生成高精度、紧凑的宽带SPICE模型,以解决高速电路设计中因封装模型不准导致的信号与电源完整性问题,助力工程师提升仿真精度与设计效率。

a1b2c的博客 318

nginx配置参数调优学习(一)之Worker_Connections

为了搞清nginx的配置参数对性能优化的影响,于是GO君拿起自己的“吾想问答网”开刀,准备好了测试脚本就开始压测,一边压测一边调整nginx参数以观察对性能的反应情况。 Worker_Connections 对Worker_Connections进行调整,nginx默认连接为51200,在对此参数适当调小后发现场景中出现了连接断开、连接超时、服务器内部错误等信息,网站无法访问且提示“500 Internal Server Error”,遂将上述参数修改为默认参数。 由上述调整可以看出W.

onnfztos的博客 9411

20个闭环渗透测试项目:从漏洞发现到简历突围

渗透测试不仅是工具使用,更是对系统设计缺陷与实现偏差的深度推演。理解OWASP Top 10、Burp Suite等基础能力只是起点,真正具备工程价值的是能复现、可验证、可协作的完整攻击链。本文聚焦真实业务场景下的SSRF协议绕过、JWT签名机制缺陷、Redis未授权利用、Kong网关配置风险及etcd存储结构分析等核心热词,揭示漏洞本质在于架构决策与配置偏差的叠加态。适用于红队实战、甲方安全建设与乙方渗透审计等多类岗位,帮助从业者将技术动作升维为技术叙事。

weixin_32234493的博客 413

记录使用nginx配置多端口时遇到的小插曲问题

本篇博文主要是记录使用Nginx配置多端口访问时,记录遇到的一些“痛点”问题,仅此记录,好记性不如烂笔头!

程序羊的博客 1362

保姆级教程:用Arduino+MPU6050自制寻北仪(附MEMS陀螺精度测试报告)

本文提供了一份详细的Arduino与MPU6050自制寻北仪的保姆级教程,包括硬件选型、卡尔曼滤波算法优化、地磁场补偿及真北计算等关键技术。通过实测数据展示了MEMS陀螺仪在民用领域的高精度性能,帮助读者低成本实现1°以内的寻北精度。

weixin_42522964的博客 363

µC/OS-II---任务就绪表

意思是:将变量OSRdyGrp中最低位为1的位数赋给y,那么,y就是最高优先级任务所在就绪表的行号,那么最高优先级的任务就在OSRdyGrp[y]行中,再根据。

weixin_45880844的博客 1648

Nginx的server块外层的常见配置语句的解读(主要是http块的配置语句解读)

Nginx的server层外层的常见配置解读

昊虹AI笔记 1848

从 OPEN CURSOR 到 SELECT INTO TABLE:把 ABAP 数据读取的底层机制与性能差异讲透

ABAP数据库访问性能优化关键点 摘要:ABAP程序性能的核心在于数据读取方式的选择。本文分析了三种常见数据库访问方式的技术原理:显式游标(CURSOR)、SELECT-ENDSELECT循环和SELECT INTO TABLE。重点揭示了数据从数据库到应用服务器的传输机制,包括OPEN/REOPEN与FETCH操作、Array Fetch批量传输原理以及SAP游标缓存机制。通过VBAK表的性能测试数据对比,证明了不同场景下最优访问方式的选择依据:大数据量时显式游标性能优势明显,而SELECT INTO T

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 168

nginx配置参数释意

user www www; # 运行的用户名和用户组worker_processes auto; # 要开启的工作进程的数量,值可以是数字,auto的话会启动和CPU核心相等的工作进程error_log /home/wwwlogs/nginx_error.log crit; # 错误日志,crit暂时不清楚什么意思pid /usr/local/nginx/logs/nginx.p

梁吉林的博客 552

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8417

华为OD机试真题 新系统2026-04-01 Java&Go【计算数列位置N的值】

如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之如果其前面的M个元素中,不存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之差;1、输入M、N两个数,则按照以下规则形成一个数列;两个整数,用逗号分割,分别表示M和N。一个整数,表示数列第N个位置上的数值。2、数列的前M个元素的值为1到M;请计算该数列第N个位置上的数值。N取值范围:1<= N<=50。M取值范围:3<=M<=10。

MISAYAONE的博客 2016

windows 下 shared zone xxx has no equal addresses

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33777877的博客 893

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Nginx与网络相关的配置的四个指令

# keepalive_timeout 该指令用于设置Nginx服务器与客户端保持连接的超时时间。指令内容有两项,一个是指定客户端连接保持活动的超时时间,另一个是可选项,指使用Keep-Alive消息头保持活动的有效时间,如果不设置Nginx不会向客户端发送Keep-Alive消息头以保持与客户端某些浏览器(Mozilla、Konqueror等)的连接。两个值的设定可以根据实际情况来,建议从服务器...

Linux_liuge的博客 419

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Nginx关于浏览器缓存相关的配置指令

浏览器缓存相关指令 Nginx需要进行缓存相关设置,就需要用到如下的指令 expires指令 expires:该指令用来控制页面缓存的作用。可以通过该指令控制HTTP应答中的“Expires"和”Cache-Control" 语法 expires [modified] time<br/>expires epoch|max|off; 默认值 expires off; 位置 http、server、location time:可以整数也可以是负数,指定过期时间,

Leon_Jinhai_Sun的博客 482

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Nginx】Nginx负载均衡 upstream 以及相关指令 配置优化

Nginx 负载均衡配置 upstream 待补充...

我是Superman丶的博客 538

Nginx 静态资源相关配置指令

没有指定的情况下没有匹配上默认使用第一个server。3 server_name 用来设置虚拟主机服务名称。1 listen:用来配置监听端口。指定情况 走指定的server。

qq_34914039的博客 120

Nginx相关指令和Nginx+tomcat配置集群负载均衡配置文件nginx.conf

Nginx指令 start nginx 启动 nginx -s stop 快速退出 nginx -s quit 优雅退出 nginx -s reload 更换配置,启动新的工作进程,优雅的关闭以往的工作进程 nginx -s reopen 重新打开日志文件 nginx.conf配置文件 #user nobody; wo

遛羊的懒懒 607

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.2 Rewrite的相关指令之set指令

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.2 Rewrite的相关指令之set指令

代码改变世界 326

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.3 Rewrite的相关指令之if指令

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.3 Rewrite的相关指令之if指令

代码改变世界 315

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.6 Rewrite的相关指令之rewrite指令

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.6 Rewrite的相关指令之rewrite指令

代码改变世界 307

读书笔记-nginx.conf配置文件中相关指令、指令集解读

http://nginx.org/en/docs/ngx_core_module.html main 配置 worker_processes: 定义woker进程的的数量,默认值是1,auto为自动探测cpu个数; worker_cpu_affinity:通过cpu的位掩码与每个worker进程绑定,auto为自动绑定; error_log: 定义错误日志文件以及错误日志文件的基本,默认值是 logs/error.log error;日志级别有debug,info,notice,warn,error

sailor_q的博客 181

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.4 Rewrite的相关指令之break指令

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.4 Rewrite的相关指令之break指令

代码改变世界 353

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.5 Rewrite的相关指令之return指令

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.5 Rewrite的相关指令之return指令

代码改变世界 212

Nginx的配置与部署(10)核心模块之HTTP模块Location相关指令

本文来自:优快云博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。 一、基本语法 语法:location [= | ~ | ~* | ^~] {...} 缺省:N/A 作用域:server 二、匹配规则 1. 四种匹配方式 = 精确匹配 ~ 大小写敏感正则匹配 ~* 大小写不敏感正则匹配 ^~ 前缀匹配 2. loc

堂吉诃德的专栏 485

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.7 Rewrite的相关指令之rewrite_log指令

零基础自学Nginx 进阶篇 3 Nginx后端服务器组的配置指令 3.1 Rewrite功能配置 3.1.7 Rewrite的相关指令之rewrite_log指令

代码改变世界 206
上一篇: Nginx安装及使用
下一篇: Mybatis入门实例(一)
NextX工作室
博客等级 码龄18年 21粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值