文章目录
- 一、Nginx主配置文件
- 1、全局配置
- 2、添加 I/O事件配置
- 4.HTTP配置
- 实操模拟部分
- 一、Nginx虚拟主机配置
- 1.1基于域名
- 1.2.基于IP
- 1.3.基于端口
- 二、Nginx访问状态统计
- 三、Nginx配置访问控制
- 1.基于授权的访问控制
- 2.基于客户端的访问控制
一、Nginx主配置文件
位置:/usr/local/nginx/conf/nginx.conf
1、全局配置
#运行用户,若编译时未指定则默认为 nobody
#user nobody;
#工作进程数量,可配置成服务器内核数 * 2,如果网站访问量不大,一般设为1就够用了
worker_processes 4;
#错误日志文件的位置
#error_log logs/error.log;
#PID 文件的位置
#pid logs/nginx.pid;
Nginx的两种进程:
主进程(master process),用于管理工作进程。
工作进程(work process),用于处理用户的连接(一般设置数与cpu总线程数一致)。
修改为与本机cpu数一致
2、添加 I/O事件配置
默认配置
默认只有一行配置,添加use epoll; 表示使用epoll I/O模型,可以提高性能。
总结:
临时修改内核的大小:ulimit -n
永久修改内核的大小:/etc/security/limits.conf
查看内核的大小:ulimit -a
如果编辑文件时出现“注意”的可以使用:rm -rf /usr/local/nginx/conf/.nginx.conf.swp————删除这个生成的文件
4.HTTP配置
http {##文件扩展名与文件类型映射表include mime.types;##默认文件类型default_type application/octet-stream;##日志格式设定,前端给日志信息定位配置#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';##访问日志位置#access_log logs/access.log main;##支持文件发送(下载)sendfile on;##此选项允许或禁止使用socket的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用#tcp_nopush on;##连接保持超时时间,单位是秒#keepalive_timeout 0;keepalive_timeout 65;##gzip模块设置,设置是否开启gzip压缩输出#gzip on;##Web 服务的监听配置server {##监听地址及端口listen 80; ##站点域名,可以有多个,用空格隔开server_name www.ff.com;##网页的默认字符集charset utf-8;##根目录配置location / {##网站根目录的位置/usr/local/nginx/htmlroot html;##默认首页文件名index index.html index.php;}##内部错误的反馈页面error_page 500 502 503 504 /50x.html;##错误页面配置location = /50x.html {root html;}}用来记录客户端用户名称;
}
日志格式设定
通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。location常见配置指令,root、alias、proxy_pass
root(根路径配置):root /var/www/html
请求www.kgc.com/test/1.html,会返回文件/var/www/html/test/1.htmlalias(别名配置):alias /var/www/html
请求www.kgc.com/test/1.html,会返回文件/var/www/html/1.html
proxy_pass(反向代理配置)
实操模拟部分
一、Nginx虚拟主机配置
1.1基于域名
(1)为虚拟主机提供域名解析
配置DNS
修改/etc/hosts文件
(2)为虚拟主机准备网页文档
#创建网页目录
mkdir -p /var/www/html/ikun
mkdir -p /var/www/html/heizi#编写简易首页html文件
echo "<h1>welcome to www.ikun.com</h1>" > /var/www/html/ikun/index.html
echo "<h1>welcome to www.heizi.com</h1>" > /var/www/html/heizi/index.html
(3)修改nginx配置文件
域名不同,IP地址相同,端口相同
(4)检查语法并重启,访问测试
systemctl restart nginx.service
成功
1.2.基于IP
(1)添加网络接口
(2)修改nginx配置文件
(3)检查语法并重启,访问测试
1.3.基于端口
(1)修改配置文件中监听端口
(2)检查语法并重启,访问测试
成功
二、Nginx访问状态统计
cat /opt/nginx-1.12.0/auto/options 可查看安装软件的所有模块(YES表示已安装)
1.先查看已安装的Nginx是否包含 HTTP_STUB_STATUS 模块
2.修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置
先恢复默认配置,再修改nginx.conf
#添加以下配置
location /status {stub_status on;#代表在当前目录status中,打开状态统计,关闭访问日志记录access_log off;
3.检查配置并重启服务,测试访问
成功
三、Nginx配置访问控制
1.基于授权的访问控制
(1)下载依赖软件,生成用户密码认证文件,修改密码文件权限
(2)修改主配置文件对应目录,添加认证配置项
(3)检查配置并重启服务,测试访问
成功!
2.基于客户端的访问控制
deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。
(1)修改配置文件,允许以下两个地址访问,拒绝其他
(2)检查配置并重启服务,测试访问
成功
本文链接:https://my.lmcjl.com/post/9219.html
4 评论