Nginx入门

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

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

2.编译nginx

./configure --prefix=/opt/aiwm/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之后通过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重新读取最新配置。

6.检测常规配置是否有安全问题

尚未验证此python库检测是否有用

$ pip install gixy

$ gixy nginx.conf

==================== Results ===================
No issues found.

==================== Summary ===================
Total issues:
    Unspecified: 0
    Low: 0
    Medium: 0
    High: 0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容