1. 安装nginx
    这里我们直接使用apt安装吧,使用二进制源码进行make编译安装也可,但是,安装nginx所需的依赖库太繁琐,稍有不慎就会导致前功尽弃,我们直接使用nginx
#更新源
sudo apt update 
#安装nginx
sudo apt install nginx
  1. 了解通过源安装的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里的配置)
  1. 启动nginx
#启动nginx
sudo systemctl start nginx
#查看是否成功
sudo systemctl status nginx
#本地访问测试是否成功,成功的话则会返回nginx的首页的html代码
sudo curl localhost

外部访问测试

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

nginx如何开启多个文件夹服务 nginx打开文件_服务器

  1. nginx的使用,这里就不细说了,资料很多,大多就是配置文件
  2. (最佳实践) 这里的也就是配置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并重新登录

  1. 对于Daemon进程需要其他步骤,修改PAM-LIMITS
sudo /etc/pam.d/common-session

添加以下内容

session required pam_limits.so
  1. 修改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