编程技术分享平台

网站首页 > 技术教程 正文

Nginx编译安装部署加固(nginx 编译模块选择)

xnh888 2024-09-09 09:51:42 技术教程 17 ℃ 0 评论

前言


Nginx(发音同“engine X”)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。

那怎么自己编译部署呢?下面将一步一步讲解它的过程。



1.root安装nginx需要依赖的库

# yum install -y gcc gcc-c++ pcre-devel openssl-devel 

2.普通用户编译nginx

$ ./configure --prefix=/opt/testerzhang/nginx-1.12.2 \
--with-http_stub_status_module --with-http_ssl_module

$ make 
$ make install


3.Nginx做非80端口转发


要做转发,可以使用Nginx的proxy_pass配置项。

Nginx监听80端口,接收到请求之后就会转发到要转发的URL。

获取真实IP具体的配置如下:

server {
    server_name www.test.com
    listen 80;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

但是,当遇到需要获取真实IP的业务时,还需要添加关于真实IP的配置:

server {
    server_name www.test.com
    listen 80;

    #safe config
    #add_header X-Frame-Options DENY;
    #hidden nginx version
    server_tokens off;
    #forbidden attack IP
    #include blockip.conf;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host:80;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

proxy_set_header这句配置是改变http的请求头。

  • Host是请求的主机名
  • X-Real-IP是请求的真实IP
  • X-Forwarded-For表示请求是由谁发起的。


4.启停命令


  • 启动命令
$ ./nginx
  • 停止命令
$ ./nginx  -s stop
  • 重新读取最新配置
./nginx  -s reload$ 


5.安全加固-拦截恶意IP


公网的服务一旦暴露出来,就经常会看到有各种IP过来的恶意攻击,其中最简单的一个方法就是:通过访问日志文件取得IP之后通过nginx进行屏蔽。


原理:nginx配置中allow,deny ip来进行权限屏蔽。

可创建一个blockip.conf,将屏蔽的ip保存在里面,再引入。

allow 1.1.1.1; 
allow 1.1.1.2;
deny all;


  • 全站屏蔽:把include blockip.conf; 放到http {}语句块。
  • 单独站点屏蔽:把include blockip.conf; 放到网址对应的在server{}语句块。

配置完,reload一下nginx,让nginx重新读取最新配置。


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表