Nginx常用配置,ssl证书配置,php-fpm配置

Nginx是一个高性能的开源Web服务器和反向代理服务器,常用于负载均衡、反向代理、静态资源服务和HTTP缓存等。以下是Nginx的详细配置说明:

  1. 基本配置: Nginx的基本配置位于nginx.conf文件中。在这里,你可以指定Nginx运行的端口、工作进程数、日志文件路径等。

  2. HTTP块: Nginx的配置主要包含在http块中。在http块中,可以配置HTTP服务器的全局参数和HTTP相关的模块,例如gzip压缩、缓存配置、反向代理等。

  3. Server块:http块内,可以有多个server块,每个server块定义一个虚拟主机。在server块中,你可以指定虚拟主机监听的端口、域名、SSL证书等信息。

  4. Location块:server块内,可以有多个location块,用于配置特定URL的请求处理。在location块中,你可以定义反向代理规则、静态资源目录、缓存配置等。

  5. 反向代理: 通过proxy_pass指令,可以将请求代理到其他服务器。例如:

    server {
        location / {
            proxy_pass http://backend_server;
        }
    }
    
  6. 负载均衡: Nginx支持多种负载均衡算法,例如轮询(默认)、加权轮询、IP hash等。可以使用upstream块定义后端服务器组,并在server块中使用proxy_pass实现负载均衡。
    upstream backend_server {
        server 192.168.1.100:8080;
        server 192.168.1.101:8080;
    }
    
    server {
        location / {
            proxy_pass http://backend_server;
        }
    }
    
  7. 静态资源: 可以使用rootalias指令配置静态资源的目录,并使用try_files指令处理请求的静态资源。
    server {
        location /static/ {
            root /var/www/html;
        }
    }
    
  8. HTTP缓存: 可以使用expires指令配置HTTP缓存,提升静态资源的加载速度。
    server {
        location /static/ {
            root /var/www/html;
            expires 7d;
        }
    }
    
  9. 重定向: 可以使用returnrewrite指令实现URL的重定向。
    server {
        location /old-url {
            return 301 http://example.com/new-url;
        }
    }
    
  10. 配置php-fpm和 SSL:
    server {
            listen 443 ssl;
            listen [::]:443 ssl;
    
            server_name  www.example.com ;
    
            ssl_certificate certs/com_bundle.crt;
            ssl_certificate_key certs/com.key;
            ssl_session_timeout 5m;
            #请按照以下协议配置
            ssl_protocols TLSv1.2 TLSv1.3;
            #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
            ssl_prefer_server_ciphers on;
    
    
            index index.html index.php index.htm;
    
            location / {
                    root /data/webapps/www;
                    index index.html index.php index.htm;
                    try_files $uri $uri/ /index.php?$args;
            }
            location ~ \.php$ {
                    root /data/webapps/www;
                    fastcgi_pass 127.0.0.1:9000;
                    fastcgi_index index.php;
                    fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    
    
    }
    

以上仅是Nginx配置的一部分,Nginx提供了丰富的指令和模块,可以根据需求进行灵活配置和扩展。配置文件修改后,需要重新加载Nginx服务器以使配置生效。在Linux中,可以使用nginx -s reload命令来重新加载配置。配置文件修改前,最好先使用nginx -t命令检查配置文件语法是否正确。