Nginx入门
2018-05-16 本文已影响11人
testerzhang
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