当前位置:   article > 正文

Nginx网站服务详解(设置并发数、实现不同虚拟主机等)_nginx并发数配置

nginx并发数配置

目录

一、nginx的最大并发数设置

二、nginx的状态收集模块

三、nginx的用户身份验证

四、nginx的location中root和alias的区别

五、nginx访问黑白名单限制

六、nginx的虚拟主机设置

第一种:基于不同域名的虚拟主机

第二种:基于不同ip地址

第三种:基于不同的端口


一、nginx的最大并发数设置

分为应用程序的设置和系统内核的设置

  1. 设置:
  2. ##应用程序的配置,修改配置文件
  3. 第一步:设置worker_processes进程的数量,一般为cpu的核数,或者为auto;
  4. 第二步:进行worker_processes与cpu绑核,设置worker_cpu_affinity;
  5. 第三步:设置worker进程的最大文件打开数量worker_rlimit_nofile和worker进程的最大连接数量worker_connections;并且启动epoll开发模型;
  6. 第四步:保存退出后nginx -t检查一下语法,并重启nginx服务,ps aux|grep nginx去查看nginx的worker进程的pid号
  7. ##修改linux系统内核能打开的最大文件数量
  8. /etc/security/limits.conf中,设置最大的nofile文件数量
  9. * soft nofile 81920
  10. * hard nofile 81920
  11. 改完以后,使用ulimit -a 查看一下
  12. ##验证
  13. cat /usr/local/nginx/logs/nginx.pid
  14. cat /proc/<pid号>/limits 进行查看

二、nginx的状态收集模块

 

在配置文件中添加模块开启 

  1. ##访问状态统计目录需要放到server模块下面,去进行相应站点的统计
  2. server {
  3. ...
  4. location /nginx_status {
  5. stub_status on;
  6. access_log off;
  7. }
  8. }

  1. 浏览器访问 http://192.168.20.30/nginx_status
  2. Active connections:表示当前的活动连接数,即当前与 Nginx 服务器建立的连接数。
  3. ##也就是netstat -natp|grep nginx|grep -c ESTABLI
  4. server accepts handled requests :表示已经处理的连接信息
  5. 三个数字依次表示服务器已接收的连接数;服务器成功处理的连接数;服务器累计处理的总请求数(在保持连接模式下,请求数量可能会大于连接数量)
  6. Reading:表示当前正在从客户端读取数据的连接数。
  7. Writing:表示当前正在向客户端写入数据的连接数。
  8. Waiting:表示当前空闲并等待请求的连接数。

三、nginx的用户身份验证

比如说上一个实验中的状态统计数量,这种内部数据,是不希望其他人能看见的,那么可以添加一个用户认证

 

  1. 第一步:安装httpd-tools ##yum install -y httpd-tools
  2. 第二步:设置密码 ##htpasswd -c /usr/local/nginx/userlist.db(授权用户名) 用户名
  3. 第三步:给该文件加上nginx用户的权限和只给读的权限
  4. chown nginx /usr/local/nginx/userlist.db
  5. chmod 400 /usr/local/nginx/userlist.db
  6. ##注意设置多个用户的时候,需要去掉-c选项,否则会清空原有的用户,-c表示新建
  7. ##如htpasswd /usr/local/nginx/userlist.db(授权用户名) 用户名2
  8. 第四步:修改nginx的配置文件,进行设置,这里是放在nginx的location模块下
  9. server{
  10. ....
  11. location /nginx_status {
  12. stub_status on;
  13. access_log off;
  14. auth_basic "username and password";
  15. auth_basic_user_file /usr/local/nginx/userlist.db;
  16. }
  17. }

 需要注意的是,这个auth模块的配置是由三个地方的

##在 http{} (所有站点生效)    

server{} (只在当前站点中生效)  

location{} (只对当前站点的指定URL路径生效) 配置

如果是访问失败,会返回状态码401,告知需要用户身份认证

四、nginx的location中root和alias的区别

root指定的路径处理方式是root路径+location匹配的路径为最终的URL路径
alias指定的路径处理方式是alias路径直接替换location匹配路径,也就是alias路径为URL路径

 

结果验证

 

  1. 设置两个location匹配,放在同一个server模块下:
  2. location /test {
  3. root html;
  4. }
  5. location /cesh {
  6. alias html;
  7. }

五、nginx访问黑白名单限制

基于上述的进行限制实验

 

 

  1. location /test {
  2. root html;
  3. deny 192.168.20.10;
  4. }
  5. location /cesh {
  6. alias html;
  7. allow 192.168.20.10;
  8. deny all;
  9. }

 需要注意的是,这个黑白名单的设置也有三个地方的

http{} (所有站点生效)    

server{} (只在当前站点中生效)  

location{} (只对当前站点的指定URL路径生效)

如果是访问失败,会返回状态码403,告知需要用户权限不足

访问控制规则如下:
deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。

六、nginx的虚拟主机设置

第一种:基于不同域名的虚拟主机

 

 

  1. server {
  2. listen 192.168.20.30:80;
  3. server_name www.accp.com; ##这个站点的域名为 www.accp.com
  4. location / {
  5. root html/accp; ##设置该域名的访问默认网页
  6. index index.html index.htm;
  7. }
  8. }
  9. server {
  10. listen 192.168.20.30:80;
  11. server_name www.benet.com;##这个站点的域名为 www.benet.com
  12. location / {
  13. root html/benet;##设置该域名的访问默认网页
  14. index index.html index.htm;
  15. }
  16. }

第二种:基于不同ip地址

 

  1. server {
  2. listen 192.168.20.30:80;##这是ens33网卡
  3. server_name www.accp.com;
  4. location / {
  5. root html/accp;
  6. index index.html index.htm;
  7. }
  8. }
  9. server {
  10. listen 192.168.20.32:80;##这是ens33:0虚拟网卡,这里是用于测试
  11. server_name www.benet.com;
  12. location / {
  13. root html/benet;
  14. index index.html index.htm;
  15. }
  16. }

第三种:基于不同的端口

  1. server {
  2. listen 192.168.20.30:6060;##基于不同端口
  3. server_name www.accp.com;
  4. location / {
  5. root html/accp;
  6. index index.html index.htm;
  7. }
  8. }
  9. server {
  10. listen 192.168.20.30:8080;##基于不同端口
  11. server_name www.benet.com;
  12. location / {
  13. root html/benet;
  14. index index.html index.htm;
  15. }
  16. }

 总结:

掌握nginx的最大并发数量的设置

掌握nginx的状态模块收集,一般会关闭日志收集

掌握黑白名单和用户认证的设置,这都是有三个不同的作用域http\server\location

掌握root和alias的区别,一个是追加location路径 一个是直接替换location路径

掌握三种不同方式虚拟主机,基于不同域名 基于不同ip 基于不同端口

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/453980
推荐阅读
相关标签
  

闽ICP备14008679号