Nginx学习笔记(九) 配置文件详细说明
2023-09-11 14:15:07 时间
配置文件详细说明
工作了几个月要开始做一些后台开发,免不了接触nginx,以前一般只是简单的使用,更多的分析内部模块的具体实现,为了部署需要进一步掌握配置方法。
全局配置信息
#nginx worker进程运行用户以及用户组
user nobody nobody;
#nginx worker数量 worker_processes 4;
#全局错误日志文件,日志输出级别有debug、info、notice、warn、error、crit(类似于Python中的logging) error_log logs/error.log notice;
#指定主进程id的存储文件位置 pid logs/nginx.pid;
#指定一个nginx进程可以打开的最多文件描述符数目 worker_rlimit_nofile 65535;
#设定nginx的工作模式及连接数上限 events{ use epoll; #linux 服务器的优点所在 worker_connections 65536;#设定worker的最大连接数 }
worker_rlimit_nofile:理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
worker_connetions:每个工作进程允许最大的同时连接数(那么,这里是不是应该小于worker_rlimit_nofile)
(nginx最大的连接数:Maxclient = work_processes * worker_connections)
虚拟主机配置
server { listen 80; server_name domain.com *.domain.com; return 301 $scheme://www.domain.com$request_uri; } server { listen 80; server_name www.domain.com; index index.html; root /home/domain.com; }
在上面的配置信息中,server代表虚拟主机,而server_name用来设定虚拟主机匹配的域名,从而可以更具不同的域名来处理不同的请求内容,即监听端口listen是相同的~
- 在第一个server中,该server只会匹配domain.com以及其子域名下的请求;
- 在第二个server中,只会匹配www.domain.com的域名请求;
server { listen 80 default_server; index index.html; root /var/www/default; }
Nginx 的虚拟主机是通过HTTP请求中的Host值来找到对应的虚拟主机配置,如果找不到呢?那 Nginx 就会将请求送到指定了 default_server 的 节点来处理,如果没有指定为 default_server 的话,就跑到 localhost 的节点,如果没有 localhost 的节点,那只好 404 了。
http配置
http {
#设定mime类型 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; #tcp_nopush on;
#长连接超时时间,单位是秒 keepalive_timeout 65; #gzip on;
#虚拟主机的配置 server {
#监听端口 listen 80;
#域名可以有多个,用空格隔开 server_name localhost; #charset utf-8;#默认编码 #access_log logs/host.access.log main; location / { root html; index index.html index.htm;
#设置访问网段
allow 192.168.1.0/24;
deny all; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
相关文章
- Swoole笔记(四)
- UFLDL 教程学习笔记(四)
- ES6学习笔记之map、set与数组、对象的对比
- cmake学习笔记
- 接口自动化-request-interface-研究笔记
- R语言与显著性检验学习笔记
- RHCE 学习笔记(13) RPM 和 YUM
- 南大《探索数据的奥秘》课件示例代码笔记13
- MATLAB学习笔记 bwlabel的使用
- 机器学习笔记 - 使用TensorFlow进行音乐生成
- 机器学习笔记 - 自动编码器autoencoder
- 机器学习笔记 - python学习记录一
- 数学建模学习笔记(二十)TSP问题遗传算法求解
- 数学建模学习笔记(十四)神经网络——下:BP实战-非线性函数拟合
- 一个程序猿试用有道云笔记VIP功能体验
- 蓝桥杯嵌入式STM32F103RB MDK Keil 5动态语法标志错误 警告 的解决方式 学习笔记
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
- 很具体GC学习笔记
- NLP模型笔记2022-32:Sentence-BERT句子语义相似计算与相似句子聚类
- 笔记:把时间当作朋友 - 醒悟
- 《数据结构与算法分析》学习笔记(五)——队ADT
- LSM Tree 学习笔记——MemTable通常用 SkipList 来实现
- pygame学习笔记(5)——精灵
- BlockChain:《区块链技术在医疗领域应用分析》—中投顾问《2016-2020年区块链技术深度调研及投资前景预测报告》听课笔记
- JavaScript入门学习笔记(四)
- 【课上笔记】第五章 数组和广义表