简单认识Nginx主配置文件及实操模拟

文章目录

  • 一、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 评论

留下您的评论.