Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

这篇具有很好参考价值的文章主要介绍了Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、全局配置的六个模块简介

二、Nginx配置文件的详解

1)全局配置模块

 2)I/O 事件配置 

3)HTTP 配置 

4)web服务监听设置

5)其他设置

location常见配置指令:“root、alias、proxy_pass

对比: 

当设置  location /test{     },alias /var/www/html  和   root /var/www/html  有什么区别?

三、访问状态统计与控制

1)访问状态统计

①查看访问统计配置的相关模块 

②修改主配置文件,添加访问状态统计模块 

事例:用脚本一键查询并发量

2)基于授权的访问控制

①生成用户密码认证文件

②修改主配

 ③重启服务,进行访问测试

3)基于客户端的访问控制

四、Nginx的虚拟主机设置 

1)基于域名的虚拟主机

①域名准备和网页准备

②主配置文件的修改

③重启服务,访问测试 

2)基于IP 的 Nginx 虚拟主机

①设置虚拟主机IP 

②修改主配置文件

③重启服务,访问测试 

3)基于端口的 Nginx 虚拟主机

①修改主配置文件

②重启服务,测试访问测试 


一、全局配置的六个模块简介

  • 全局块:全局配置,对全局生效

  • events块:配置影响 Nginx 服务器与用户的网络连接

  • http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置

  • server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块

  • location块:用于配置匹配的 uri

  • upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分

注意:location 匹配的内容来源是来自网页的URI,而不是URL(URL代表整个链接如:www.baidu.com/images/search,而URI则是/images/search。所以nginx的location匹配的是URI) 

二、Nginx配置文件的详解

1)全局配置模块

就是配置文件从头开始到 events 块之间的内容,主要设置的是影响nginx服务器整体运行的配置指令。比如 worker_process,值越大,可以支持的并发处理量也越多,但是还是和服务器的硬件相关

vim /usr/local/nginx/conf/nginx.conf 

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

 2)I/O 事件配置 

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

#如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数

永久修改的方式:

[root@localhost init.d]#vim /etc/security/limits.conf 

注意:软硬件的事件处理都要设置才能生效,并且保存退出后,要重新连接查看才会生效

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。

#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制。

#epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。(实现异步非阻塞)

3)HTTP 配置 

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

4)web服务监听设置

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

5)其他设置

日志格式设定:
$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址
$remote_user:用来记录客户端用户名称
$time_local: 用来记录访问时间与时区
$request: 用来记录请求的url与http协议
$status: 用来记录请求状态;成功是200
$body_bytes_sent :记录发送给客户端文件主体内容大小
$http_referer:用来记录从哪个页面链接访问过来的
$http_user_agent:记录客户浏览器的相关信息

通常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.html

  • alias(别名配置):alias /var/www/html

请求www.yang.com/test/1.html,会返回文件/var/www/html/1.html


对比: 

当设置  location /test{     },alias /var/www/html  和   root /var/www/html  有什么区别?

  • alias是别名设置,将设置的网页放在/var/www/html下,访问
  • root 是根目录设置 ,将设置的网页放在 /var/www/html/test 下,访问

proxy_pass(反向代理配置)

三、访问状态统计与控制

1)访问状态统计

①查看访问统计配置的相关模块 

cat /opt/nginx-1.22.0/auto/options | grep YES   #可查看 nginx 已安装的所有模块

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

[root@localhost ~]#/usr/local/nginx/sbin/nginx -V
查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

②修改主配置文件,添加访问状态统计模块 

#主配置备份,防止设置错误,无法还原
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

修改主配配置操作:

vim /usr/local/nginx/conf/nginx.conf
 
 
 server {
        listen       80;
        server_name  www.yang.com;
 
        charset utf-8;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   html;
            index  index.html index.htm;
        }
        location /status {
            stub_status on;
            access_log off;
        }

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

重启nginx服务,访问测试:

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

除此之外:还可以 curl -Ls http://192.168.73.105/status 结合 awk与if 语句进行性能监控

事例:用脚本一键查询并发量

要求:每10秒获取并发量大于2时,发送预警

[root@bogon ~]# vim a.sh
 
#!/bin/bash
 
while true
do
#筛选静态状态的第三部分
a=$(curl -Ls 192.168.231.102/status | awk '/Active connections/{print $3}')
 
if [ $a -gt 2 ];then
  echo "警报!当前并发连续过高!当前并发数为:$a"
fi
 
sleep 10   #睡眠10秒
done
~      

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

用另一台虚拟机登录访问,后运行脚本

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

#查看并发连接数的另一种方法
netstat/ss -natp | grep nginx | grep -c ESTABLISHED

2)基于授权的访问控制

①生成用户密码认证文件

yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db zhangsan
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

②修改主配

vim /usr/local/nginx/conf/nginx.conf
 
server {
		location / {
			......
			##添加认证配置##
			auth_basic "secret";				#设置密码提示框文字信息
			auth_basic_user_file /usr/local/nginx/passwd.db;
		}
	}

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

 ③重启服务,进行访问测试

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

3)基于客户端的访问控制

设置方式类似于黑白名单

设置前的访问,其他主机访问测试:

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

访问控制规则如下:

deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问
规则从上往下执行,如匹配则停止,不再往下匹配
vim /usr/local/nginx/conf/nginx.conf
......
    server {
        location / {
            ......
            ##添加控制规则##
            allow 192.168.73.105;                     #允许访问的客户端 IP
            deny all;                                #拒绝其它IP客户端访问
        }
    }

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

设置后的访问测试:

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

四、Nginx的虚拟主机设置 

相比较Apache的虚拟主机设置,Nginx的设置是十分简便的只需要修改主配置中的相关配置就能实现虚拟主机的效果

1)基于域名的虚拟主机

①域名准备和网页准备

[root@localhost conf]#echo "192.168.73.105 www.test1.com www.test2.com" >> /etc/hosts
[root@localhost conf]#mkdir -p /var/www/html/test1
[root@localhost conf]#mkdir -p /var/www/html/test2
[root@localhost conf]#echo "<h1>this is  test1</h1>" > /var/www/html/test1/index.html
[root@localhost conf]#echo "<h1>this is  test2</h1>" > /var/www/html/test2/index.html

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

②主配置文件的修改

vim /usr/local/nginx/conf/nginx.conf
http {
...... 
server {
        listen 80;
        server_name  www.test1.com;
 
        charset utf-8;
 
        access_log  logs/www.test1.access.log;
 
        location / {
            root /var/www/html/test1;
            index  index.html index.htm;
        }
 
        #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;
        }
}
 
    server {
        listen       80;
        server_name  www.test2.com;
 
        charset utf-8;
 
        access_log  logs/www.test2.access.log;
 
        location / {
            root /var/www/html/test2;
            index  index.html index.htm;
        }
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
..............
 }
}

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

③重启服务,访问测试 

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

2)基于IP 的 Nginx 虚拟主机

①设置虚拟主机IP 

[root@localhost conf]#ifconfig ens33:0 192.168.73.200/24
[root@localhost conf]#ifconfig ens33:0 

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

②修改主配置文件

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
    server {
        listen 192.168.73.105:80;
        server_name  www.test1.com;
 
        charset utf-8;
 
        access_log  logs/www.test1.access.log;
 
        location / {
            root /var/www/html/test1;
            index  index.html index.htm;
        }
 
        #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;
        }
}
     server {
        listen 192.168.73.200:80;
        server_name  www.test2.com;
 
        charset utf-8;
 
        access_log  logs/www.test2.access.log;
 
        location / {
            root /var/www/html/test2;
            index  index.html index.htm;
        }
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
..........
}

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

③重启服务,访问测试 

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

3)基于端口的 Nginx 虚拟主机

①修改主配置文件

[root@localhost conf]#vim /usr/local/nginx/conf/nginx.conf
 
......
http {
......
    server {
        listen 192.168.73.105:666;
        server_name  www.test1.com;
 
        charset utf-8;
 
        access_log  logs/www.test1.access.log;
 
        location / {
            root /var/www/html/test1;
            index  index.html index.htm;
        }
 
        #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;
        }
}
     server {
        listen 192.168.73.105:888;
        server_name  www.test2.com;
 
        charset utf-8;
 
        access_log  logs/www.test2.access.log;
 
        location / {
            root /var/www/html/test2;
            index  index.html index.htm;
        }
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
..........
}

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

②重启服务,测试访问测试 

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)

Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)文章来源地址https://www.toymoban.com/news/detail-467159.html

到了这里,关于Nginx网站服务详解(Nginx服务的主配置文件 ——nginx.conf)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解析Nginx配置文件conf中的常用块

    Nginx是一个高性能的HTTP和反向代理服务器,它的配置文件主要由多个块组成。 本文将介绍Nginx配置文件中的常用块及其功能 。 events块 events块用于设置Nginx的工作模式和连接数相关的参数。 http块 http块用于配置Nginx处理HTTP请求的相关参数。 server块 server块用于配置一个虚拟主

    2024年01月19日
    浏览(40)
  • 一文彻底搞懂Nginx的.conf文件路径配置

    前言:最近在Nginx上部署Vue项目,同时还存了一些静态资源,但我查了好久都没找到一篇详细介绍路径配置的文章,因此就根据我有限的经验写了这篇文章,希望能够对读者有所帮助 如下图所示,这是我配置好的一个server代码块,我这里配置了https,所以会比默认的多一部分

    2024年02月09日
    浏览(35)
  • 【ubuntu】ubuntu 20.04安装docker,使用nginx部署前端项目,nginx.conf文件配置

    docker 官网:Install Docker Engine on Ubuntu 1.将apt升级到最新 2.使用apt安装 docker 和 docker-compose (遇到提示输入 y ) 3.将当前用户添加到docker用户组 4.运行hello-world 运行成功 1.修改配置文件 修改conf/nginx.conf 2.重新挂载 给容器设置自启动(如果提示就去掉sudo) 给docker设置开机自启动

    2024年01月20日
    浏览(47)
  • 【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解

    目录 🌷 安装Nginx环境 🍀 centos操作系统 🍀 ubuntu操作系统 以下是在linux系统中安装Nginx的步骤: 查看服务器属于哪个操作系统 安装 yum : 如果你确定你的系统应该支持 yum ,但它没有安装,你可以尝试安装它。使用以下命令: ①:更新系统软件包 centos: ②:安装EPEL存储库

    2024年04月26日
    浏览(30)
  • Nginx网站服务详解(编译安装及系统服务添加)

    目录 一、Nginx的相关知识 1)Nginx的简介 Nginx: Apache: 2)Apache与Nginx的区别  Nginx对比Apache的优势:  apache相对于nginx的优点 : 3)Nginx的进程   Nginx有两个进程: Nginx 是如何实现高并发的?  同步和异步 阻塞与非阻塞 Nginx为什么不使用多线程? 二、编译安装Nginx服务 1)初

    2024年02月07日
    浏览(37)
  • Nginx代理nginx.conf配置——反向代理(对WebSocket支持)

    基于Nginx代理nginx.conf配置——反向代理,如果要添加websocket支持,需要进行如下配置 在http中添加一下配置,添加对websocket支持 配置后重新运行nginx后,websocket即可成功代理。 注意防火墙端口是否开放、nginx如果使用docker,其对应的端口是否映射出来。

    2024年02月13日
    浏览(30)
  • nginx 多配置(.conf)的使用

    通常情况下我们在一个.conf 承载好多服务代理的配置,使用.conf 文件过大,过长,以至于管理难,有时修改某个小配置,由于重起或重截配置文件,使用服务受影响。因此使用多配置组合的方式进行管理很有必要。 注意:本文中配置的文件和影射的目录文件,因为我用的是

    2024年02月11日
    浏览(40)
  • Nginx使用场景&&Nginx基础&&Nginx的负载均衡策略&&Nginx配置文件&&Nginx+Tomcat集群示例&&Nginx部署静态网站&&根据Tomcat容器实际IP修改Nginx配置

    目录 1. Nginx使用场景 2. Nginx中的进程 2.1 Nginx中的多进程模型 2.2 多进程模式的优点: 2.3 缓存 3. Ngnix的负载均衡策略 3.1 轮询法 3.2 加权轮询 3.3 原地址哈希 3.4 最小连接数法 3.5 Fair 3.6 url_hash 3. Nginx配置文件 4. Nginx+tomcat 集群示例 4.1 下载镜像 4.2 在宿主机中创建需要挂载的目录

    2024年02月04日
    浏览(43)
  • nginx 配置 可使用服务器IP访问网站

    如果想要在局域网中使用ip访问nginx配置的网站,需要在防火墙中设置开放端口 nginx 默认监听的是80端口,,我们也可以在nginx的配置文件中复制粘贴多个server,并设置不同的监听端口 1,添加80端口  firewall-cmd --zone=public --add-port  80/tcp  --permanent 2,重启防火墙服务:systemctl

    2024年02月14日
    浏览(43)
  • nginx一台服务器上配置两个https 域名网站

    要在 Nginx 中配置两个 HTTPS 网站,您需要执行以下步骤: 在服务器上安装 SSL 证书。您需要为每个网站安装单独的 SSL 证书。 在 Nginx 配置文件中创建两个 server 块,每个块代表一个网站。 在每个 server 块中,配置 SSL 证书和密钥文件的路径。 配置每个 server 块的 server_name 指令

    2024年02月10日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包