ubuntu服务器部署nginx(优化实践,linux修改文件最大打开数)

  1. 安装nginx

    这里我们直接使用apt安装吧,使用二进制源码进行make编译安装也可,但是,安装nginx所需的依赖库太繁琐,稍有不慎就会导致前功尽弃,我们直接使用nginx

    #更新源
    sudo apt update 
    #安装nginx
    sudo apt install nginx
    
  2. 了解通过源安装的nginx的目录结构

    • 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
    • 程序文件在/usr/sbin/nginx
    • 日志放在了/var/log/nginx中
    • 并已经在/etc/init.d/下创建了启动脚本nginx
    • 默认的虚拟主机的目录设置在了/var/www/nginx-default (有的版本 默认的虚拟主机的目录设置在了/var/www, 请参考/etc/nginx/sites-available里的配置)
  3. 启动nginx

    #启动nginx
    sudo systemctl start nginx
    #查看是否成功
    sudo systemctl status nginx
    #本地访问测试是否成功,成功的话则会返回nginx的首页的html代码
    sudo curl localhost
    

    外部访问测试

    ​ 首先你必须开放对应端口,查看防火墙设置,云服务器的可以去控制台直接打开即可。然后再外部浏览器访问IP即可,成功的话就会显示这个

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rU8gsTIk-1645423079978)(C:\Users\xpdxz\AppData\Roaming\Typora\typora-user-images\image-20220221133846572.png)]

  4. nginx的使用,这里就不细说了,资料很多,大多就是配置文件

  5. (最佳实践) 这里的也就是配置nginx的全局参数,通过与自己服务器的配置相配合,达到nginx性能最优

    这种情况个人使用,应该很少会遇到,也就是nginx在高并发下,可能会报错“Too many open files”,导致服务器崩溃,那这是什么原因?大家可以百度一下linux文件最大打开数。对应nginx的配置项,也就是这个配置项

    user nobody nobody;
    worker_processes 2;
    error_log logs/error.log notice;
    pid logs/nginx.pid;
    #这个,相信大家很少看见到这个配置
    worker_rlimit_nofile 65535;
    
    events{
    use epoll;
    worker_connections 65536;
    }
    

    首先要说明,这个参数是要被限制于你linux系统的限制,所以说这个配置项需要结合最大文件打开数来配置

    最大文件打开数:这个限制说明,一个用户在能够在一个单独会话中所能打开的最大文件数。
    #通过ulimit命令查看
    ulimit -n
    #结果:(服务器初始情况下,一般都是1024)
    

    最大文件打开数为1024,如果nginx在多并发情况下,是远远不够的,经常会报错,我们这里需要修改,修改为符合自己的限制,我的服务器是腾讯云2核4G的,客服建议我设置成65535即可

    修改最大文件打开数

    1. 每用户上限

      sudo vim /etc/security/limits.conf
      

      在末尾添加

      *         hard    nofile      65535
      *         soft    nofile      65535
      root      hard    nofile      65535
      root      soft    nofile      65535
      

      修改后,需要logout并重新登录

    2. 对于Daemon进程需要其他步骤,修改PAM-LIMITS

      sudo /etc/pam.d/common-session
      

      添加以下内容

      session required pam_limits.so
      
    3. 修改nginx配置文件

      user  www;
      worker_processes  4; #默认进程数为1,为提高性能官方的建议是修改成cpu的内核数或为内核数的2倍,可以减少机器io带来的影响
      
      error_log  /var/log/nginx/error.log warn;
      pid        /var/run/nginx.pid;
      
      worker_rlimit_nofile 65535; #配置要和系统的单进程打开文件数一致,可通过 ulimit -n 命令查询
      
      events {
          
          #根据系统的最大打开文件数来调整,worker_connections进程连接数量要小于等于系统的最大打开文件数
          #worker_connections进程连接数量真实数量 = worker_connections*worker_process
          worker_connections  16383; # 根据本例,理论上单个进程允许的客户端最大连接数(65535/4}
      
      http {
          include       /etc/nginx/mime.types;
          default_type  application/octet-stream;
      
          client_max_body_size 25m;
          client_header_buffer_size 4k;
      
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for"';
      
          server_tokens off; #隐藏nginx版本号
      
          access_log off; #关闭请求日志优化性能
          #access_log  /var/log/nginx/access.log  main;
      
          open_file_cache max=65535 inactive=20s;
      
          sendfile        on;
          #tcp_nopush     on;
      
          keepalive_timeout  60;
      
          #gzip  on;
      
          include /etc/nginx/conf.d/*.conf;
      }
      
      

6.重启nginx

sudo systemctl restart nginx
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值