Nginx优化与防盗链

配置Nginx隐藏版本号


隐藏Nginx版本号,避免安全漏洞泄漏Nginx隐藏版本号的方法

修改配置文件法
修改源码法

修改配置文件法

首先先修改配置文件

然后重启配置就可以了

这时候就没有版本号了

修改源码法

修改nginx.h的文件

修改哐哐的东西 然后重新安装

cd /opt/nginx-1.12.0/

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

make install

然后进入

vim /usr/local/nginx/conf/nginx.conf

修改配置文件

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

然后重新启动

systemctl restart nginx

curl -I http://xxxxxxxxxxx

就能查看了

配置Nginx网页缓存时间        


当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度

一般针对静态网页设置,对动态网页不设置缓存时间

连接保持超时

  •  keepalive_timeout  服务端超时时间  客户端超时时间;
    • 设置连接保持超时时间
  • Client_header_timeout
    • 指定等待客户端发送请求头的超时时间
  • Client_body_timeout
    • 设置请求体读超时时间

设置工作进程数

在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
更改进程数的配置方法
修改配置文件,修改进程配置参数
修改配置文件的worker_processes参数
一般设为CPU的个数或者核数
在高并发情况下可设置为CPU个数或者核数的2倍
增加进程数,可减少了系统的开销,提升了服务速度
使用ps aux查看运行进程数的变化情况

[root@www conf]# cat /proc/cpuinfo | grep -c "physical"
4
[root@www conf]# vi nginx.conf
worker_processes 4;
[root@www conf]# systemctl restart nginx
[root@www conf]# ps aux | grep nginx

查看cpu情况

Nginx虚拟主机

基于域名的虚拟主机

server {
    server_name XXX;         #指定不同的域名
}

基于IP的虚拟主机

server {
    listen  <IP>:端口;       #指定不同的IP
}

基于端口的虚拟主机

server {
    listen   IP:<端口>;      #指定不同的端口
}

编译安装Nginx服务

关闭防火墙 将安装nginx所需软件包传到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
 
nginx-1.12.0.tar.gz

安装依赖包

#nginx的配置及运行需要pcre、zlib、openssl等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件。
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限

useradd -M -s /sbin/nologin nginx

编译安装Nginx

cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
 
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \                            #指定nginx的安装路径
--user=nginx \                                        #指定用户名
--group=nginx \                                        #指定组名
--with-http_stub_status_module                        #启用 http_stub_status_module 模块以支持状态统计
 
make && make install
 
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/        #让系统识别nginx的操作命令

检查、启动、重启、停止 nginx服务

nginx -t                                #检查配置文件是否配置正确
#启动
/usr/local/nginx/sbin/nginx                                    
#停止
cat /usr/local/nginx/logs/nginx.pid        #先查看nginx的PID号

kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx
#重载
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
#日志分割,重新打开日志文件
kill -USR1 <PID号>
#平滑升级
kill -USR2 <PID号>
新版本升级:
tar -zxvf nginx-1.xx.xx.tar.gz 
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module

make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/nginx
make upgrade  #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的
#或者先 killall nginx ,再/usr/local/nginx/sbin/nginx

添加 Nginx 系统服务

vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;
 
stop)
  kill -s QUIT $(cat $PID)
;;
 
restart)
  $0 stop
  $0 start
;;
 
reload)
  kill -s HUP $(cat $PID)
;;
 
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
 
esac
exit 0
 
 
chmod +x /etc/init.d/nginx
chkconfig --add nginx                            #添加为系统服务
systemctl stop nginx
systemctl start nginx

相关推荐

  1. Nginx优化防盗

    2024-06-11 18:32:06       26 阅读
  2. nginx做盗防盗配置

    2024-06-11 18:32:06       26 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 18:32:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-11 18:32:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-11 18:32:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-11 18:32:06       18 阅读

热门阅读

  1. 华为和锐捷设备流统配置

    2024-06-11 18:32:06       8 阅读
  2. Linux下的lvm镜像与快照

    2024-06-11 18:32:06       6 阅读
  3. STM32 UART串口与物联网设备的集成方案

    2024-06-11 18:32:06       9 阅读
  4. PostgreSQL教程

    2024-06-11 18:32:06       4 阅读
  5. 1. 面向对象的由来

    2024-06-11 18:32:06       10 阅读