1, 使用 htpasswd 生成 passfile 文件htpasswd 是 apache 实用工具的一部分,Nginx 的密码格式和 Apache 的一样。CentOS 下的生成方法:yum install -y httpd-tools # 安装
htpasswd -c -d /etc/nginx/pass_file username
Debian 下的生成方法:sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd admin
2,添加到 nginx 配置在 server 或者 local 下,添加
Nginx 会根据mime type告诉浏览器如何处理服务器返回的文件,是打开还是下载。默认的 default_type定义的是 default_type application/octet-stream;mime type 和文件扩展名的对应关系一般放在 mime.types这个文件里,然后用 include mime.types; 来加载mime.types文件里是用types指令来定义的文本:location /test {
default_type text/html;
return 200 'This is text!';
}
JSON:location /test
网站中图片过大无法正常显示,通常显示一半,就提示502错误了,Nginx 错误日志代理提示:2021/05/19 16:28:35 [crit] 10976#0: *13 open() "/nginx_dir/proxy_temp/2/00/0000000002" failed (13: Permission denied) while reading upstream, client: 200.130.237.38, server: test.com, request: "GET /uploads/images/20210220/48a18881fa3b45781b512f2376c9bef
location 匹配~ #匹配一个正则表达式,区分大小写
~* #匹配一个正则表达式,不区分大小写
^~ #匹配普通字符,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
= #进行普通字符精确匹配
@ #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files
演示:location = / {
# 只匹配"/"
}
location / {
# 匹配所有请求,长字符或者正则表达式会优先匹配
}
location ^~ /images/ {
# 匹配任何以 /images/ 开始的请求,并
MainRule例子:MainRule "str:--" "msg:mysql comment (--)" "mz:BODY|URL|ARGS|$HEADERS_VAR:Cookie" "s:$SQL:4" id:1007;
MainRule的匹配模式有:str:字符串
rx:正则表达式
d:libinj_xss:libinjection检测为xss
d:libinj_sql:libinjection检测为sql注入
”str:--”,代表匹配 -- 这个字符。"msg:mysql comment (--)" 用于描述规则。"mz:BODY|URL|ARGS|$HEADERS_VAR
1, rewrite 介绍rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。rewrite 在 server 块中针对所有的请求,location 中则针对单个匹配路径的,还可以在 If 条件块中使用。基本语法:rewrite regex replacement [flag];
regex: 正则表达式语句进行规则匹配replacement: 将正则匹配的内容替换成replacementflag: last | break | redirect | permanentlast : 本条规则匹配完成后,继
SSH 密码登录#!/usr/bin/expect -f
set password "123456"
set timeout -1
spawn ssh user@xxx.xxx.xxx.xx
expect "*assword:*"
send "$password\r"
expect "Last*"
interact
SSH 证书登录#!/usr/bin/expect -f
set password "123456"
set timeout -1
spawn ssh -i /Users/user/Cert/id_rsa user@xxx.xxx.xxx.xx -p 3002
nginx 错误日志 nginx accept() failed (24: Too many open files)
原因是 Linux 设置了软硬文件句柄和打开文件的数目,你可以使用 ulimit 命令来查看这些限制。什么是ulimit?ulimit 描述符用于限制用户打开的文件数量,让单个用户不至于打开较多的文件,导致系统奔溃或者资源不足的情况。Linux中一切皆文件,所以文件的含义是很广的。unlimit 还可以限制所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户
nginx.confload_module modules/ngx_http_js_module.so;
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
修改配置文件:/etc/ssh/sshd_config#ClientAliveInterval 0
#ClientAliveCountMax 3
ClientAliveInterval 60
ClientAliveCountMax 3
ClientAliveInterval 0指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置60表示每分钟发送一次, 客户端响应, 就保持连接了。ClientAliveCountMax 3表示服务器发出请求后客户端没有响应的次数达到3次以后, 就自动断开。
1. 登录到服务器,生成 SSH 的密钥和公钥ssh-keygen -t rsa
将公钥复制到 authorzied_keys 文件cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
修改 authorized_keys 权限为 644,.ssh 权限为700chown -R 700 ~/.ssh
chown -R 644 ~/.ssh/authorized_keys
ls -a .ssh #查看用户权限
备注,生成的证书不留空证书密码的话,别人有证书也无法登录。2. 修改服务器 ssh 配置修改 sshd_config 配置文件 vi /etc/ssh/
Nginx 报错 open() "nginx/fastcgi_temp/7/14/0000000147" failed (13: Permission denied) while reading upstream网站使用的是 Wordpress 无法正常打开某些页面,查看日志报错[crit] 866#0: *698736 open() "/space/nginx/fastcgi_temp/7/14/0000000147" failed (13: Permission denied) while reading upstream, client: 39.149.237.52, server: s
正向代理与反向代理的区别就是代理的对象不一样,正向代理代理的对象是客户端,反向代理代理的对象是服务端。1,正向代理我们日常的科学上网就可以用Nginx做正向代理如下,也是正向代理server {
location / {
proxy_pass http://$http_host$request_uri;
}
}
2,反向代理配置语法:Syntax:proxy_pass URLDefault:--Context:location,if inlocation,limit_except如下:server {
location ~ /test_ind
OSS可以通过阿里云STS(Security Token Service)进行临时授权访问。通过STS,您可以为第三方应用或子用户(即用户身份由您自己管理的用户)颁发一个自定义时效和权限的访问凭证。使用场景对于您本地身份系统所管理的用户,例如您的App的用户,将这部分用户称为联盟用户。通过阿里云STS服务为阿里云账号(或RAM用户)提供临时访问权限管理。您不需要透露云账号(或RAM用户)的长期密钥(如登录密码、AccessKey),只需要生成一个临时访问凭证给联盟用户使用即可。这个凭证的访问权限及有效期限都可以由您自定义。您不需要关心权限撤销问题,临时访问凭证过期后会自动失效。实现原理以一个移
2020年12 月 8 日,CentOS 项目宣布,CentOS 8 将于 2021 年底结束,而 CentOS 7 将在2024年,其生命周期结束后停止维护。为其接班的正是 CentOS Stream 滚动发行版本,原本拥有 10 年支持的 CentOS 8 将在2021年年底说结束维护就结束维护。所以火速将自己的服务器从 CentOS8 降到 CentOS 7。mkdir /space
cd /space
wget https://nginx.org/download/nginx-1.18.0.tar.gz
yum -y install gcc pcre pcre-devel zl
管理员可以通过分析nginx的错误日志手动添加白名单规则。白名单规则配置naxsi核心规则文件naxsi_core.rules需要在nginx配置文件nginx.conf下的http部分导入,而naxsi白名单规则文件naxsi_whitelists.rules一般在nginx配置文件nginx.conf下的location部分导入,可放置在CheckRules语句之前。location部分对应的配置内容如下:include naxsi_whitelists.rules;#导入白名单规则
SecRulesEnabled;
DeniedUrl "/RequestDenied";
Check
扩容相关文档在这里。https://help.aliyun.com/document_detail/35095.html扩容的流程分三大步。第一步,创建磁盘快照。第二步,购买磁盘。第三步,在CentOS中增加已经新增容量。购买磁盘的时候注意,最好能勾选在线扩容。否则的话,新增磁盘还需要重启服务器。现在主要说第三步,fdisk -lu查看实例的云盘情况,会显示扩容完的磁盘大小df -Th确认已有分区的文件系统类型和磁盘大小,在ECS实例内分区和文件系统并未扩容。growpart /dev/vda 1此示例以扩容系统盘为例,/dev/vda和1之间需要空格分隔。如果需要扩容其他分区,请根据实际情况
一,ngx_http_limit_conn_module 模块,限制单IP并发连接数ngx_http_limit_conn_module模块用于限制连接数量,特别是来自单个IP地址的连接数量。并非所有的连接都被计数。只有当服务器处理了请求并且已经读取了整个请求头时,连接才被计数。示例配置:http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
...
server {
...
location /download/ {
limit_conn addr 1;
}
}
li
macOS 安装 nginxbrew install nginx
cp nginx.conf.default nginx.conf
cd www.conf.default www.conf
安装PHP 参考:https://javascript.net.cn/articles/582找到PHP的位置/usr/local/php7
修改 ~/profilePATH="/usr/local/php7/bin:/usr/local/php7/sbin:$PATH"
开启php-fpm
关闭 php-fpmsudo killall php-fpm
如果遇到上传文件权限不够nginx open() cl
知识回顾:open_basedir是php.ini中的一个配置选项它可将用户访问文件的活动范围限制在指定的区域,假设open_basedir=/home/wwwroot/home/web1/:/tmp/,那么通过web1访问服务器的用户就无法获取服务器上除了/home/wwwroot/home/web1/和/tmp/这两个目录以外的文件。注意用open_basedir指定的限制实际上是前缀,而不是目录名。举例来说: 若"open_basedir = /dir/user", 那么目录 "/dir/user" 和 "/dir/user1"都是可以访问的。所以如果要将访问限制在仅为指定的目录,请用斜