Nginx目录结构与配置文件详解
Nginx安装
具体安装nginx请移步:[nginx部署]
安装依赖
安装pcre依赖软件
[root@ubuntu ~]# yum install -y pcre pcre-devel //外网情况使用此安装方式 [root@ubuntu ~]# rpm -ivh pcre //内网情况使用此安装方式 [root@ubuntu ~]# rpm -ivh pcre-devel //内网情况使用此安装方式 #编译安装pcre依赖软件(注意编译安装软件包需要开发工具的支持安装nginx需要make、gcc、c++支持) #下载地址: https://ftp.pcre.org/pub/pcre/ //根据相关情况进行选择版本下载 [root@ubuntu ~]# wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz //下载pcre软件包 [root@ubuntu ~]# tar zxf pcre-7.80.tar.gz //解压软件包 [root@ubuntu ~]# cd pcre-7.80 //进入相关目录 [root@ubuntu ~]# ./configure //配置 [root@ubuntu ~]# make && make install //编译并编译部署
安装openssl依赖软件
[root@ubuntu ~]# yum install -y openssl openssl-devel //外网情况使用此安装方式 [root@ubuntu ~]# rpm -ivh openssl //内网情况使用此安装方式 [root@ubuntu ~]# rpm -ivh openssl-devel //内网情况使用此安装方式 编译安装与pcre几乎一致,请参考上一小节
安装Nginx
nginx下载地址:[nginx官网地址],下载nginx时需要注意版本问题,nginx分为三个版本:稳定版、开发版和老版本稳定版
检查依赖是否安装
[root@ubuntu ~]# rpm -qa pcre-devel pcre pcre-devel-.el6.x86_64 //pcre的devel字符串包已经安装 pcre-.el6.x86_64 //pcre软件包已经安装 [root@ubuntu ~]# rpm -qa openssl-devel openssl openssl-.el6.x86_64 //openssl的包已经安装 openssl-devel--.el6.x86_64 //openssl的devel字符串包已经安装
安装nginx
[root@ubuntu:/opt]# wget -q http://nginx.org/download/nginx-1.17.6.tar.gz //下载软件包 [root@ubuntu:/opt]# ls nginx-.tar.gz //查看是否下载成功 -rw-r--r-- root root Nov : nginx-.tar.gz [root@ubuntu:/opt]# useradd nginx -s /sbin/nologin -M //创建nginx执行用户 [root@ubuntu:/opt]# tar xf nginx-.tar.gz //解压nginx软件包 [root@ubuntu:/opt]# cd nginx- //进入解压目录 [root@ubuntu nginx-]#./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module //配置nginx软件包
具体配置模块讲解请移步[nginx编译配置模块大全]
[root@ubuntu nginx-]# make //编译nginx软件包 [root@ubuntu nginx-]# make install //部署nginx软件包
启动nginx检查是否安装成功
检查nginx语法
root@ubuntu:~# /usr/local/nginx/sbin/nginx -t //查看nginx配置文件是否正确 nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok //表示语法正确 nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful //test成功
启动nginx
root@ubuntu:~# /usr/local/nginx/sbin/nginx //直接启动就可以
具体的启动方式请移步:[nginx部署]
查看Nginx端口是否启动
root@ubuntu:~# lsof -i : //查看相关端口 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx root 0t0 TCP *:http (LISTEN) nginx nobody 0t0 TCP *:http (LISTEN) root@ubuntu:~# netstat -anpl | grep nginx //查看nginx的相关端口 tcp /nginx: master unix [ ] STREAM CONNECTED /nginx: master unix [ ] STREAM CONNECTED /nginx: master root@ubuntu:~#
访问nginx
root@ubuntu:~# curl 127.0.0.1 //访问nginx <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>
nginx目录结构说明
root@ubuntu:~# tree /usr/local/nginx/ /usr/local/nginx/ ├── client_body_temp ├── conf //存放一系列配置文件的目录 │ ├── fastcgi.conf //fastcgi程序相关配置文件 │ ├── fastcgi.conf.default //fastcgi程序相关配置文件备份 │ ├── fastcgi_params //fastcgi程序参数文件 │ ├── fastcgi_params.default //fastcgi程序参数文件备份 │ ├── koi-utf //编码映射文件 │ ├── koi-win //编码映射文件 │ ├── mime.types //媒体类型控制文件 │ ├── mime.types.default //媒体类型控制文件备份 │ ├── nginx.conf //主配置文件 │ ├── nginx.conf.default //主配置文件备份 │ ├── scgi_params //scgi程序相关配置文件 │ ├── scgi_params.default //scgi程序相关配置文件备份 │ ├── uwsgi_params //uwsgi程序相关配置文件 │ ├── uwsgi_params.default //uwsgi程序相关配置文件备份 │ └── win-utf //编码映射文件 ├── fastcgi_temp //存放fastcgi程序临时文件 ├── html //存放网页文档 │ ├── 50x.html //错误页码显示网页文件 │ └── index.html //网页的首页文件 ├── logs //存放nginx的日志文件 │ ├── access.log //默认访问日志 │ ├── error.log //错误日志 │ └── nginx.pid //nginx pid文件 ├── proxy_temp //代理相关临时文件 ├── sbin //存放启动程序 │ └── nginx //nginx启动程序 ├── scgi_temp //存放scgi程序临时文件 └── uwsgi_temp //存放uwsgi程序临时文件 directories, files
主配置文件说明
#user nobody; //定义执行nginx程序的用户 worker_processes ; //指定nginx进程数 #错误日志定义类型有:debug、info、notice、warn、error、crit #error_log logs/error.log; //指定错误日志目录 #error_log logs/error.log notice; //指定notice类型的错误日志目录 #error_log logs/error.log info; //指定全局错误日志目录 #worker_rlimit_nofile ; //指定但进程最多打开文件数量 #pid logs/nginx.pid; //指定进程文件的目录 events { //事件区块 //事件模型有:kqueue、rtsig、epoll、/dev/poll、select、poll use epoll; //指定参考事件模型 worker_connections ; //指定单进程最大链接数 } http { //http区块 include mime.types; //指定nginx支持的媒体类型 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; //指定nginx的访问日志目录 sendfile on; //开启高效的传输模式 #tcp_nopush on; //防止网络阻塞 #keepalive_timeout ; //链接超时事件 keepalive_timeout ; #gzip on; //开启gzip压缩输出 #gzip_min_length 1k; //最小压缩文件大小 #gzip_buffers 16k; //压缩缓冲区 #gzip_http_version 1.0; //压缩版本(默认1.1,前端如果是squid2.5请使用1.0) #gzip_comp_level ; //压缩等级 #gzip_types text/x-javascript text/css application/xml; //压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。 #gzip_vary on; //增加响应头”Vary: Accept-Encoding” #limit_zone crawler $binary_remote_addr 10m; //开启限制IP连接数的时候需要使用 #FastCGI程序相关参数 #配置FastCGI程序相关参数是为了改善网站的性能:减少资源占用,提高访问速度。 #fastcgi_connect_timeout ; //连接到后端fastcgi超时时间 #fastcgi_send_timeout ; //向fastcgi请求超时时间(这个指定值已经完成两次握手后向fastcgi传送请求的超时时间) #fastcgi_read_timeout ; //接收fastcgi应答超时时间,同理也是2次握手后 #fastcgi_buffer_size 64k; //读取fastcgi应答第一部分需要多大缓冲区,该值表示使用1个64kb的缓冲区读取应答第一部分(应答头),可以设置为fastcgi_buffers选项缓冲区大小 #fastcgi_buffers 64k; //指定本地需要多少和多大的缓冲区来缓冲fastcgi应答请求,假设一个php或java脚本所产生页面大小为256kb,那么会为其分配4个64kb的缓冲来缓存;若页面大于256kb,那么大于的256kb的部分会缓存到fastcgi_temp指定路径中,这并非是个好办法,内存数据处理快于硬盘,一般该值应该为站点中php/java脚本所产生页面大小中间值,如果站点大部分脚本所产生的页面大小为256kb,那么可把值设置为16 16k,4 64k等 #fastcgi_busy_buffers_size 128k; //默认值是fastcgi_buffer的2倍 #fastcgi_temp_file_write_size 128k; //写入缓存文件使用多大的数据块,默认值是fastcgi_buffer的2倍 #fastcgi_cache TEST; //开启fastcgi缓存并为其指定为TEST名称,降低cpu负载,防止502错误发生. #应答代码缓存时间,200和302应答缓存为1个小时,301一天,其他1分钟 #fastcgi_cache_valid 1h; #fastcgi_cache_valid 1d; #fastcgi_cache_valid any 1m; #主机配置 server { #server区块,每一个区块表示一个虚拟主机 listen ; #侦听端口 server_name localhost; #配置此主机的域名 #charset koi8-r; //配置字符编码 #access_log logs/host.access.log main; //配置默认访问日志目录 location / { #location区块 通过指定模式来与客户端请求的URI相匹配 root html; #配置站点根目录 index index.html index.htm; #默认文件 } #error_page /.html; //当发生404错误的时候能够显示一个预定义的uri # redirect server error pages to the static page /50x.html //将服务器错误页重定向到静态页/50x.html # error_page /50x.html; #当发生其中错误的时候能够显示一个预定义的uri #反向代理 #location / { #proxy_pass http://127.0.0.1:88; //指定代理地址 #proxy_redirect off; //当上游服务器返回的响应是重定向或刷新请求(如HTTP响应码是301或者302)时,proxy_redirect可以重设HTTP头部的location或refresh字段。可选参数default、off、redirect replacement] #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP #proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #proxy_set_header Host $host; //允许重新定义或者添加发往后端服务器的请求头 #client_max_body_size 10m; //允许客户端请求的最大单文件字节数 #client_body_buffer_size 128k; //缓冲区代理缓冲用户端请求的最大字节数 #proxy_connect_timeout ; //nginx跟后端服务器连接超时时间(代理连接超时) #proxy_send_timeout ; //后端服务器数据回传时间(代理发送超时) #proxy_read_timeout ; //连接成功后,后端服务器响应时间(代理接收超时) #proxy_buffer_size 4k; //设置代理服务器(nginx)保存用户头信息的缓冲区大小 #proxy_buffers 32k; //proxy_buffers缓冲区,网页平均在32k以下的设置 #proxy_busy_buffers_size 64k; //高负荷下缓冲大小(proxy_buffers*2) #proxy_temp_file_write_size 64k; //设定缓存文件夹大小,大于这个值,将从upstream服务器传 #} #设置js和css缓存时间 #location ~ .*\.(js|css)?$ #{ #expires 2h; # } #设置图片缓存事件 #location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #{ #expires 5d; # } #监控Nginx状态的地址 #location /NginxStatus { #stub_status on; //开启监控状态 #access_log on; //开启默认访问监控 #auth_basic "NginxStatus"; //设置验证模块 #auth_basic_user_file conf/htpasswd; //htpasswd文件的内容可以用apache提供的htpasswd工具来产生。 #} #动静分离配置 #所有jsp的页面均交由tomcat处理 #location ~ .(jsp|jspx|do)?$ { #proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #proxy_pass http://127.0.0.1:8080; # } #所有静态文件由nginx直接读取不经过tomcat #location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$# #{ #expires 10d; #} #location ~ .*.(js|css)?${ #expires 2h; #} }
Nginx目录结构与配置文件详解的更多相关文章
- Nginx安装,目录结构与配置文件详解
1.Nginx简介 Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设 ...
- Tomcat的目录结构和配置文件详解
本文转载: https://www.zybuluo.com/1234567890/note/515235 参考帖子: Tomcat(一):基础配置详解 Tomcat服务器中配置多个域名,访问不同的we ...
- Linux:apache目录结构和配置文件详解
bin目录下的常见命令 conf目录 htdocs目录 logs目录 httpd.conf文件解析. 如果后期自己新创建了新的站点目录,就要重新增加对应的目录权限配置 extra/目录下配置文件解析 ...
- nginx目录结构和配置文件
nginx软件功能模块说明 Nginx软件之所以强大,是因为它具有众多的功能模块,下面列出了企业常用的重要模块. (1) Nginx核心功能模块(Core functionality)nginx核心功 ...
- elasticsearch(三) 之 elasticsearch目录介绍和配置文件详解
目录 elasticsearch 配置 目录详情 (config) 配置文件 elasticsearch.yml 配置集群名称(cluster.name) 配置 network.host 更改数据和储 ...
- net core体系-web应用程序-3项目结构、配置文件详解
一.应用程序文件结构 如下图所示,相比于Asp.Net项目,在新建的Asp.Net Core项目中,没有了Global.asax以及Web.config这样的文件,但多了几个其他主要的文件,它们分别为 ...
- nginx应用场景,特性,目录结构,常用模块,内置变量,URL和URI,http状态码,配置文件详解
1.nginx介绍 1丶俄罗斯人开发的,开源www服务软件 2丶软件一共780K 3丶nginx本身是一款静态(html,js,css,jpg等)www软件 4丶静态小文件高并发,同时占用的资源很少, ...
- Nginx配置配置文件详解
文章目录 配置文件 nginx.conf配置文件详解 用于调试.定位问题的配置参数 正常运行必备的配置参数 优化性能的配置参数 事件相关配置 Fastcgi相关配置参数 常需要调整的参数 nginx作 ...
- Nginx知多少系列之(三)配置文件详解
目录 1.前言 2.安装 3.配置文件详解 4.Linux下托管.NET Core项目 5.Linux下.NET Core项目负载均衡 6.Linux下.NET Core项目Nginx+Keepali ...
随机推荐
- PHP常用的header头部定义
<?php header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 heade ...
- 删除Linux的依赖库并进入救援模式恢复
删除Linux的依赖库并进入救援模式恢复 模拟一下依赖库文件被删,并进入救援模式恢复 系统:CentOS7 一.删除mv的依赖库文件 删除/lib64/libc.so.6 [root@centos7 ...
- 关于Jvm的见解(一)
Jvm组成结构 硬件体系(如Intel体系.spac等)——>操作系统(如Windows.Linux等)——>Java Virtual Machine 所以虚拟机与硬件系统并没有直接的交 ...
- [LC]141题 Intersection of Two Linked Lists (相交链表)(链表)
①中文题目 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 注意: 如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构.可假定整 ...
- hdu 1233 (prim,最小生成树) 还是畅通工程
还是畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- Tsx写一个通用的button组件
一年又要到年底了,vue3.0都已经出来了,我们也不能一直还停留在过去的js中,是时候学习并且在项目中使用一下Ts了. 如果说jsx是基于js的话,那么tsx就是基于typescript的 废话也不多 ...
- MemoryStream相关知识分享
一.简单介绍一下MemoryStream MemoryStream是内存流,为系统内存提供读写操作,由于MemoryStream是通过无符号字节数组组成的,可以说MemoryStream的性能可以算比 ...
- opencv 5 图像转换(1 边缘检测)
边缘检测 一般步骤 canny算子 步骤 canny函数 彩色canny #include<opencv2/opencv.hpp> #include<opencv2/highgui/ ...
- Js获取宽高度的归纳总结
首先,先吓唬一下我们的小白们!在js中的描述宽高的可以细分有22种. window.innerWidth //除去菜单栏的窗口宽度 window.innerHeight//除去菜单栏的窗口高度 win ...
- 【Linux系列】Centos 7部署Laravel项目(七)
目的 本文主要介绍以下五点: 一. Composer安装 二. SSH设置 三. Git安装 四. Laravel部署 五. 上传GitHub 演示 一. Composer安装 # cd /usr/l ...