nginx配置文件单独创建和管理

在nginx主配置文件nginx.conf的http模块下引入配置文件夹(注意路径的正确性)

1、nginx主配置文件备份后编辑(nginx配置存放位置:/usr/local/nginx/conf/):

cd /usr/local/nginx/conf/ && mv nginx.conf nginx.conf-bak && vim nginx.conf

贴入内容如下:

user www www; #运行用户

worker_processes 1;

nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个或者将一个进程分配到多个cpu,根据自己环境来配。

error_log /usr/local/nginx/logs/nginx_err.log crit; #错误日志位置和日志级别

pid /usr/local/nginx/nginx.pid;

目录和安装位置一致才行,按教程安装的不用改目录

worker_rlimit_nofile 65535;

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

events
{
use epoll;

使用epoll的I/O模型,用这个模型来高效处理异步事件

worker_connections 65535;

每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。

}

http
{
include /usr/local/nginx/conf/conf.d/*.conf;

这里就是引入的子配置文件夹

server_tokens off;

隐藏响应头中的有关操作系统和web server(Nginx)版本号的信息,这样对于安全性是有好处的。

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

charset utf-8; #字符集编码格式

server_names_hash_bucket_size 128;
client_header_buffer_size 2k;

客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。

large_client_header_buffers 4 4k;
client_max_body_size 8m;

sendfile on;

可以让sendfile()发挥作用。sendfile()可以在磁盘和TCP socket之间互相拷贝数据(或任意两个文件描述符)。Pre-sendfile是传送数据之前在用户空间申请数据缓冲区。之后用read()将数据从文件拷贝到这个缓冲区,write()将缓冲区数据写入网络。sendfile()是立即将数据从磁盘读到OS缓存。因为这种拷贝是在内核完成的,sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效(更多有关于sendfile)。

tcp_nopush on;

告诉nginx不要缓存数据,而是一段一段的发送–当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值

tcp_nodelay on;

告诉nginx不要缓存数据,而是一段一段的发送–当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。

keepalive_timeout 60;

http连接超时时间,默认是60s,功能是使客户端到服务器端的连接在设定的时间内持续有效,当出现对服务器的后继请求时,该功能避免了建立或者重新建立连接。切记这个参数也不能设置过大!否则会导致许多无效的http连接占据着nginx的连接数,终nginx崩溃。

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;

open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如果有一个文件在inactive时间内一次没被使用,它将被移除。

open_file_cache max=65535 inactive=20s;

这个参数将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存

open_file_cache_min_uses 1;
open_file_cache_valid 30s; #多长时间检查一次缓存的有效信息

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;

log_format access ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
access_log /usr/local/nginx/logs/nginx_out.log access; #访问日志存放位置

autoindex off; #不允许列出整个目录
autoindex_exact_size off; #显示出文件的大概大小,而非确切大小,单位是kB或者MB或者GB
autoindex_localtime off; #显示的文件时间为GMT时间

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s;

限速模块——限制单个IP(或者其他的key)发送请求的速率,超出指定速率后,Nginx将直接拒绝更多的请求;定义了一个名为mylimit大小为10MB的共享内存区域(zone),用来存放限速相关的统计信息,限速的key值为二进制的IP地址($binary_remote_addr),限速上限(rate)为5r/s,每秒5请求;

2、在引入的配置文件夹中添加个基础的独立配置文件html.conf,

复制用快捷指令:mkdir /usr/local/nginx/conf/conf.d/ && cd /usr/local/nginx/conf/conf.d/ && vim html.conf

贴入下方绿色文字配置:

server
{
listen 80; #监听端口
server_name localhost; #域名
index index.html index.htm index.php; #配置增加支持php文件解析
root /var/html/; #站点目录,目录要存在

limit_conn zone=mylimit 5; #限制在记录状态的每个IP只能发起的并发连接数量

limit_rate 1000k; #对每个连接限速多少,这里是对连接限速,而不是对IP限速。如果一个IP允许三个并发连接,那么这个IP就是限速为limit_rate×3,在设置的时候要根据自己的需要做设置调整,要不然会达不到自己希望的目的。

limit_rate_after 50000k; #在下载这个数值后开始限速。

location / {

limit_req zone=mylimit burst=10; #限速模块——每个key(此处是每个IP)最多允许10个突发请求的到来,与下方规则二选一

limit_req zone=mylimit burst=10 nodelay; #限速模块——nodelay参数允许请求在排队的时候就立即被处理,与上方规则二选一
}

location ~ .*.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000; #遇到php这类动态解析文件丢给9000端口的程序处理
fastcgi_index index.php; #配置支持php文件解析

include test.conf;

}

location ~ .*.(gif|jpg|jpeg|png|bmp|swf|js|css)$
{
expires 15d; #浏览器缓存时间1小时
}

安全设置

location ~ ^/(class|controller|db|data|functions|templates)/..(db3|php|php5|sql)$ {
return 403;
}
location ~ ^/(data)/..(html)$ {
deny all;
}
location /db {
deny all;
}

伪静态

rewrite ^/click/(.) /index.php?c=click&id=$1 break;
rewrite ^/api/(.
)?(.*) /index.php?c=api&method=1&2 break;
rewrite /login /index.php?c=login break;

3、配置检查

cd /usr/local/nginx/sbin && ./nginx -t

4、启动nginx

cd /usr/local/nginx/sbin && ./nginx

nginx运行状态查看

查看80端口占用情况:
netstat -tunlp | grep 80

查看进程是否运行
ps -A | grep nginx

强制关闭nginx
pkill nginx

Original: https://www.cnblogs.com/brad93/p/16647499.html
Author: 星仔1208
Title: nginx配置文件单独创建和管理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577696/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • debugfs使用指南

    debugfs 概述 类似sysfs、procfs,debugfs 也是一种内存文件系统。不过不同于sysfs一个kobject对应一个文件,procfs和进程相关的特性,debu…

    Linux 2023年6月7日
    091
  • win10安装redis

    下载地址:https://github.com/MicrosoftArchive/redis/releases 这个太慢了 https://github.com/ServiceSt…

    Linux 2023年5月28日
    0118
  • vscode shellArgs.windows参数如何设置使得powershell终端字符集编码为UTF-8?

    网上的大部分是这个答案: “terminal.integrated.shellArgs.windows”: [“-NoExit”, “/c”, “chcp 65001”] 如果你觉…

    Linux 2023年6月13日
    095
  • Ubuntu18.04安装/卸载NVIDIA显卡驱动

    1 显卡驱动下载 官网:NVIDIA 搜索适合本机的驱动 获取最新版本驱动 立即下载 文件 上面,显卡驱动程序下载已完成。 [En] Above, the video card d…

    Linux 2023年5月27日
    0223
  • 真香警告!JitPack 开源库集成平台

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 简介 官方介绍: JitPack 是一个用于 JVM 和 Android 项目的新颖的包存储库。它按需构建 Git…

    Linux 2023年6月14日
    0112
  • gitlab部署

    Gitlab部署 Gitlab部署 Gitlab的基本使用 新建项目 使用命令行的方式管理项目 上传文件 新建分支 拉取文件 //配置yum源 [root@localhost ~]…

    Linux 2023年6月13日
    0104
  • WEB自动化-01-Cypress 介绍

    Cypress 介绍 1.1 Cypress 简介 Cypress是一款基于 JavaScript的下一代前端测试工具。可以对浏览器中运行的任何内容进行快速、简单和可靠的测试。Cy…

    Linux 2023年6月7日
    088
  • 模型层

    准备阶段 django自带的sqlite3数据库,功能很少,并且针对日期类型不精确 准备步骤 数据库正向迁移命令(将类操作映射到表中) python3 manage.py make…

    Linux 2023年6月7日
    088
  • shell脚本调试方法

    set -x bash -x test.sh 作者:习惯沉淀 如果文中有误或对本文有不同的见解,欢迎在评论区留言。 如果觉得文章对你有帮助,请点击文章右下角【推荐】一下。您的鼓励是…

    Linux 2023年5月28日
    089
  • 截止2021年底,我国18个税种中已有12个税种完成立法

    截止2021年底,我国18个税种中已有12个税种完成立法: 1.中华人民共和国个人所得税法 (自1980年9月10日起施行)2.中华人民共和国企业所得税法 (自2008年1月1日起…

    Linux 2023年6月14日
    0399
  • 关于博客园设置awescnb皮肤教程

    第一步:申请博客园 申请博客园,然后再申请js权限 第二步:设置博客园 页面定制勾选禁止模版使用css 页面定制css代码 .profile-menu{ display: none…

    Linux 2023年6月11日
    078
  • [20210930]bbed读取数据块7 fffext.sh.txt

    [20210930]bbed读取数据块7 fffext.sh.txt –//一般bash shell脚本很少考虑执行效率,仅仅考虑利用它快速解决工作中遇到的问题. &#…

    Linux 2023年6月13日
    083
  • MS17-010复现

    一、环境准备 功击方:kali (192.168.43.132) 目标机:win7(192.168.43.134) win7打开smb服务 漏洞的产生: Sbm服务 445端口 二…

    Linux 2023年6月7日
    070
  • Go channel使用注意事项

    说道这里,还是总结下channel的几个特性吧: 给一个 空 channel发送数据,会造成永远阻塞 从一个 空 channel接收数据,会造成永远阻塞 给一个已经关闭的chann…

    Linux 2023年6月6日
    095
  • shell相关知识2

    <li class="tool-item tool-active is-like tool-clicked"><a href="ja…

    Linux 2023年5月28日
    077
  • Redis缓存三大问题解析,看完保你面试能造火箭,工作能拧螺丝。

    前言 日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。 面试10家公司,收获9个offer,2020年…

    Linux 2023年5月28日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球