nginx官方源安装-主配置文件详解
HTTP相关术语
PV : Page Visit 页面独立浏览量,查看日志生成条数可以看到PV数量。
PV全称Page View,中文翻译即页面浏览。其具体的度量方法是从浏览器发出一个对网络服务器的请求(Request),网络服务器接到该请求后,会将请求对应的网页(Page)发送给浏览器,从而产生一个PV。只要是请求发送给了浏览器,无论页面是否完全打开(下载完成),都计为1个PV。
UV : 独立设备,访问的次数。
IP : 同一个ip访问的次数,比如宽带入网,只有一个公网IP,内网有n个用户访问同一个页面,那么也只有1个IP
假设公司一座大厦,大厦有100人,每个人有一台电脑和一部手机,上网都是通过nat转换出口,每个人点击网站两次,请问对应的pv,uv,ip分别是多少?
pv:400
uv:200
ip:1
SOA松耦合架构
把网页功能模块化。
nginx的优点
代码少,轻量级,性能高采用epoll模型。
epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外,还提供了边缘触发(Edge Triggered),这就使得用户空间程序有可能缓存IO状态,减少epoll_wait/epoll_pwait的调用,提高应用程序效率。技术成熟,用户广泛。
百度、腾讯、新浪、等都在使用。功能模块化,便于二次开发。
要使用什么功能就调用什么模块,使用更加的轻便化。运行占用内存小。
nginx应用场景
静态服务
1. 浏览器缓存
2. 防盗链
3. 资源分类
4. 资源压缩
5. 资源缓存
6. 跨域访问
代理服务
1、协议类型
2、正向代理
3、反向代理
4、负载均衡
5、代理缓存
6、动静分离
安全服务
1、访问控制
2、访问限制
3、流量限制
4、拦截攻击
5、拦截异常请求
6、拦截sql注入
流行架构
nginx+php lnmp
nginx+java lnmt
nginx+python
静态和动态的区别,主要是看是否调用了数据库。
静态服务器: nginx、apache、IIs、lighttpd、Tengine、openresty-nginx他们没有办法直接连接数据库。
动态服务器: tomcat、resin、php、weblogic、jboss
安装nginx
nginx官网下载地址http://nginx.org/en/download.html ; 在网页最下面,应尽量使用稳定版网页中已经标注。

选择相应的版本然后复制红色部分到yum仓库中即可。

yum安装
# 1、修改nginx的yum源。
[root@web01 ~]# vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
# 2、安装
[root@web01 ~]# yum -y install nginx
# 3、启动服务,开机自启
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl enable nginx
# 4、检测nginx是否安装成功
检查端口:
[root@web01 ~]# netstat -lntup |grep 80
检查进程:
[root@web01 ~]# ps -ef | grep [n]ginx
# 检查nginx的版本
[root@web01 ~]# nginx -v
# 检查安装时的功能
[root@web01 ~]# nginx -V
nginx version: nginx/1.18.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
# nginx的启动、停止、重启、重新加载配置文件
[root@web01 ~]# systemctl restart nginx 在配置文件配置错误的时候容易导致服务起不起来。
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl stop nginx
[root@web01 ~]# systemctl reload nginx
# 二进制包nginx的管理
/app/nginx/sbin/nginx -s stop # 停止
/app/nginx/sbin/nginx -s reload # 重新加载配置文件
/app/nginx/sbin/nginx # 启动
nginx的相关文件
通过官方源,yum安装的nginx,配置文件已经被优化过。
| /etc/nginx/conf.d/ | 用户配置的配置文件目录 |
|---|---|
| /etc/nginx/nginx.conf | 主配置文件 |
nginx代理文件
/etc/nginx/scgi_params # ajax
/etc/nginx/uwsgi_params # python
/etc/nginx/fastcgi_params # php
和字符集编码相关的文件
[root@web01 ~]# ll /etc/nginx/koi-utf
-rw-r--r-- 1 root root 2837 Apr 21 23:07 /etc/nginx/koi-utf
[root@web01 ~]# ll /etc/nginx/koi-win
-rw-r--r-- 1 root root 2223 Apr 21 23:07 /etc/nginx/koi-win
[root@web01 ~]# ll /etc/nginx/win-utf
-rw-r--r-- 1 root root 3610 Apr 21 23:07 /etc/nginx/win-utf
浏览器支持直接打开的格式
[root@web01 ~]# ll /etc/nginx/mime.types
-rw-r--r-- 1 root root 5231 Apr 21 23:07 /etc/nginx/mime.types
Content-Type:与扩展名
[root@workstation ~]# cat /etc/nginx/mime.types
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
...
nginx相关命令文件
[root@web01 ~]# /usr/sbin/nginx
[root@web01 ~]# /usr/sbin/nginx-debug
日志相关文件,logrotate是一个系统工具,可以自动的切割日志。nginx的日志每天会自动打包切割。
[root@web01 ~]# ll /etc/logrotate.d/nginx
[root@web01 ~]# ll /var/log/nginx/
total 8
-rw-r----- 1 nginx adm 412 May 14 11:04 access.log
-rw-r----- 1 nginx adm 246 May 14 11:04 error.log
nginx的配置文件
主要分为三个模块:核心模块、事件驱动模块、http模块。
[root@web01 ~]# cat /etc/nginx/nginx.conf
########## 核心模块 ##########
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
########## 事件驱动模块 ##########
events {
worker_connections 1024;
}
########## http模块 ##########
http {
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
nginx配置文件详解
[root@web01 ~]# cat /etc/nginx/nginx.conf
########## 核心模块 ##########
# nginx的启动用户
user nginx;
# worker的进程数量,子进程,通常使用auto。
worker_processes 1;
# 错误日志的存放路径和记录日志的级别-info、error、warn、debug
error_log /var/log/nginx/error.log warn;
# pid文件的路径
pid /var/run/nginx.pid;
########## 事件驱动模块 ##########
events {
# 每个worker进程,允许可连接的数量
worker_connections 1024;
}
########## http模块 ##########
http {
# 包含指定文件的内容;浏览器可加载的文件:html、jpeg、text、txt。。。。
include /etc/nginx/mime.types;
# 默认要下载的类型,在/etc/nginx/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 /var/log/nginx/access.log main;
# 高效传输文件,性能优化的时候用。
sendfile on;
#tcp_nopush on;
# 长连接的超时时间
keepalive_timeout 65;
# 是否开启gzip压缩,打开之后传输更快
#gzip on;
# 在/etc/nginx/conf.d/以conf结尾的文件
include /etc/nginx/conf.d/*.conf;
}
使用下面的方法自定义日志格式
在此配置文件中的设置是全局的
http {
include /etc/nginx/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"';
log_format zidingyi '"访问的IP:"$remote_addr';
access_log /var/log/nginx/access.log main;
# 日志格式的名字
access_log /var/log/nginx/zidingyi.log zidingyi;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
# =====================================================================
可以调用主配置文件中的日志格式
[root@web01 ~]# vi /etc/nginx/conf.d/gong.conf
server{
listen 80;
server_name www.gong.com;
root /code;
index index.html;
access_log /var/log/nginx/zidingyi.log zidingyi;
}
nginx官方源安装-主配置文件详解的更多相关文章
- ubuntu nginx 安装以及配置文件详解
1.到nginx官网下载源码包.最好下载稳定版本,nginx官网http://www.nginx.org/ 2.安装nginx依赖包运行命令: sudo apt-get install libssl- ...
- nginx安装及配置文件详解
一)nginx安装及模块讲解 1.1.nginx安装步骤 mkdir /soft wget http://nginx.org/download/nginx-1.12.0.tar.gz tar zxf ...
- haproxy 安装与配置文件详解
本文主要阐述haproxy的安装配置详解,对于它的概念,作用,功能,和其它LB软件的区别,优点,缺点等不再进行说明. 一. haproxy 的安装配置 # cat /etc/redhat-releas ...
- Nginx概述、安装及配置详解
nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...
- 正向代理/反向代理理解、Nginx概述、安装及配置详解
一.Nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理, ...
- keepalived安装及配置文件详解
一个执着于技术的公众号 在上一篇文章中,我们对Keepalived进行了简单入门学习: Keepalived入门学习 今天我们继续学习Keepalived服务. 一.安装Keepalived服务 两种 ...
- Hibernate 主配置文件详解
摘要: 版权声明:本文为博主原创文章,如需转载请标注转载地址. 博客地址:http://www.cnblogs.com/caoyc/p/5595870.html 一.主配置文件命名规则 1.默认名称: ...
- mybatis主配置文件详解
mybatis主配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configur ...
- nginx主配置文件详解
#定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_processes 8; #全局错误日志定义类型,[ debug | in ...
随机推荐
- Leedcode算法专题训练(位运算)
https://www.cnblogs.com/findbetterme/p/10787118.html 看这个就完事了 1. 统计两个数的二进制表示有多少位不同 461. Hamming Dista ...
- Qt中检查槽函数connect是否正确
环境:VS2017+Qt插件 一般情况下VS+QT环境下运行的QT程序输出信息需要在调试模式的输出栏可以看到,由于太多信息所以导致查看不方便(当然也可以在筛选选项中筛选信息). 有更方便查看输出信息的 ...
- Linux下屏幕亮度的调节
1 概述 Linux下的屏幕调节可以通过图形界面或者命令行进行调节,图形界面的话主要就是在设置中进行调节,如果设置中没有相应的选项可以进行手动调节. 2 手动调节 2.1 手动屏幕调节 亮度由ACPI ...
- TEX Quotes UVA-272
TEX is a typesetting language developed by Donald Knuth. It takes source text together with a few ...
- 基于.Net Core 5.0 Worker Service 的 Quart 服务
前言 看过我之前博客的人应该都知道,我负责了相当久的部门数据同步相关的工作.其中的艰辛不赘述了. 随着需求的越来越复杂,最近windows的计划任务已经越发的不能满足我了,而且计划任务毕竟太弱智,总是 ...
- 【C#】一个Loading窗体载入与销毁的方法
写在前面 Minecraft Command Editor 2跳票了近两年的时间(对不起!!).2021年2月,我重启了MCE项目,并正式命名为Minecraft Command Editor 202 ...
- hdu1247 字典树或者hash
题意: 给你一些串,问你哪些串是由其他两个串连接成的. 思路: 我用了两种方法,一个是hash,hash的时候用map实现的,第二种方法是字典树,字典树我们枚举每个一字符串,查 ...
- hdu5056(找相同字母不出现k次的子串个数)
题意: 给你一个字符串,然后问你这个字符串里面有多少个满足要求的子串,要求是每个子串相同字母出现的次数不能超过k. 思路: 这种题目做着比较有意思,而且不是很难(但自己还是嘚瑟,w ...
- Python脚本爬取网站美女照片
上次无意之中看到一个网站,里面全是美女的照片,我就心想,哪天有时间了得把这网站的所有美女照片都得爬下来.今天有时间,写了点代码,爬去了网站的所有照片.附上战果!图片实在是太多了,爬半个多小时 先附上所 ...
- 使用BurpSuite抓取HTTPS网站的数据包
昨天面试,技术官问到了我如何使用BurpSuite抓取https网站的数据包,一时间没能回答上来(尴尬!).因为以前https网站的数据包我都是用Fiddler抓取的,Fiddlert自动帮我们配置好 ...