Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

前置注意

  • 自己新建一个账户,不要用它的nginx,不然连目录都没有

    • 详情参考jenkins里面
    • 把下面命令中的nginx换成自己的账户名
  • 尝试nginx -t,出现错误

    nginx: [alert] could not open error log file:
    open() "/var/log/nginx/error.log" failed 
    (13: Permission denied)
    
    • 办法:
      sudo chown -R nginx:root /var/log/nginx
      
      • 好像改了也没啥用,这个错误必定出现,只有sudo nginx -t才会不报错
    nginx: [emerg] could not build server_names_hash, 
    you should increase server_names_hash_bucket_size: 32
    
    • 办法:
      sudo vim /etc/nginx/nginx.conf
      
      • http{}内添加一行server_names_hash_bucket_size 64;
      • 一开始是32不行,后面64就行了,如果还不行,就再加一倍
  • 由于新版本nginx.conf里面将nginx默认设置为软件进程用户,所以:

    • 需要先新建网站根目录
      mkdir -p /opt/www
      
    • 然后迭代设置为nginx用户权限
      chown nginx:root /opt/www/ -R
      
    • 如果是需要做jenkins自动化部署,需要单独创建一个账户,然后存放公钥,这样直接把nginx.conf里面的用户换成自己建立的就好,然后用户权限也给自己建立的
  • 配置文件虽然在根目录下./nginx.conf,但不建议直接改写这个

    • 所以要在./conf.d/目录内自己写default.conf(如果没有,需要自己新建)
    • 为什么这样写可以?
      • 因为nginx.conf里面有如下一行:
        include /etc/nginx/conf.d/*.conf;
        
  • 理解X-Forwarded-For

    • 是非rfc标准的,默认是没有的,需要强制添加
    • 规则
      • 每次经过proxy转发,都需要往这字段上记录
      • 格式就是client1, proxy1, proxy2,