nginx基于ssl的配置

###nginx程序环境
配置文件的组成部分:
主配置文件:nginx.conf
include conf.d/*.conf
fastcgi, uwsgi,scgi等协议相关的配置文件
mime.types:支持的mime类型
主程序文件:/usr/sbin/nginx
Unit File:nginx.service

注意:
(1) 指令必须以分号结尾;
(2) 支持使用配置变量;
内建变量:由Nginx模块引入,可直接引用;
自定义变量:由用户使用set命令定义;
set variable_name value;
引用变量:$variable_name
image.png

#nginx的配置文件
user nginx;
worker_processes auto; #自动生成worker子进程,一般根据cpu的核数生成
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024; #单个worker子进程保持连接数
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
      ##变量的含义可以在nginx网站上查看http://nginx.org/en/docs/
    access_log  /var/log/nginx/access.log  main;

    sendfile            on; #直接在内核封装响应报文,不需要在应用层封装,提升性能
    tcp_nopush          on; #同上
    tcp_nodelay         on; #同上
    keepalive_timeout   65; #保持连接超时
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream; #默认识别成八进制数据流

    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server; #后缀说明是默认虚拟主机,当所有server不匹配时,匹配这个
        listen       [::]:80 default_server;
        server_name  _; #下划线可以匹配所有地址名
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {

        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

但是一般不推荐直接在主配置文件中配置,在/etc/nginx/conf.d/中创建一个.conf文件的即可,来测试一下

[root@lvq-7-4-2 ~]# cat /etc/nginx/conf.d/test.conf 
server {
        listen 80;
        server_name node2.lvqing.com;
        root /data/nginx/vhost1;
} 
[root@lvq7-4-1 keepalived]# curl http://node2.lvqing.com
<h1>Nginx Vhost 2</h1>

nginx最难的就是其配置的指令,必须要熟练的知道nginx指令所代表的意义
###main配置段常见的配置指令:
分类:
正常运行必备的配置
优化性能相关的配置
用于调试及定位问题相关的配置
事件驱动相关的配置

####正常运行必备的配置:
1、user
Syntax: user user [group];
Default: user nobody nobody;
Context: main

2、pid /PATH/TO/PID_FILE;
指定存储nginx主进程进程号码的文件路径;

3、include file | mask;
指明包含进来的其它配置文件片断;

4、load_module file;
指明要装载的动态模块;1.10以后才支持

###性能优化相关的配置:
1、worker_processes number | auto;
worker进程的数量;通常应该等于小于当前主机的cpu的物理核心数;
auto:当前主机物理CPU核心数;

2、worker_cpu_affinity cpumask …;
worker_cpu_affinity auto [cpumask];
CPU MASK:几个cpu用几个0表示
00000000:
00000001:0号CPU
00000010:1号CPU
3、worker_priority number;
指定worker进程的nice值,设定worker进程优先级;[-20,20]

4、worker_rlimit_nofile number;
worker进程所能够打开的文件数量上限;

扫描二维码关注公众号,回复: 4935336 查看本文章

####调试、定位问题:
1、daemon on|off;
是否以守护进程方式运行Nignx;

2、master_process on|off;
是否以master/worker模型运行nginx;默认为on;
使用master来处理请求,可查看其状态
3、error_log file [level];
默认级别为warrning,不使用rsyslog来记录日志

####事件驱动相关的配置:
events {

}

1、worker_connections number; #关键配置,调优需要
每个worker进程所能够打开的最大并发连接数数量;
worker_processes * worker_connections

2、use method;
指明并发连接请求的处理方法;
use epoll;

3、accept_mutex on | off;
处理新的连接请求的方法;on意味着由各worker轮流处理新请求,Off意味着每个新请求的到达都会通知所有的worker进程;
配置nginx通过ssl进行链接

1、首先我们在CA服务器node2上生成私钥
image.png

2、然后生成自签证书
image.png
注意是echo 01 > serial
image.png

3、然后在node1生成私钥,注意组织名要一致,不然可能不签发

image.png

4、文件通过scp传给node2,然后签发证书
image.png

5、证书已经有了
image.png
6、编辑配置文件

   
server{
        listen 443 ssl;
        server_name node1.lvqing.com;
        root /var/nginx/www/;
        access_log /var/log/nginx/ngx_ssl_access.log main;

        ssl on;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;                                                                                          
        ssl_protocols sslv3 tlsv1 tlsv1.1 tlsv1.2;
        ssl_session_cache shared:SSL:10m; #打开会话缓存

          location ~* \.php$ {
                proxy_cache pxycache;
                proxy_cache_key $proxy_host$request_uri;
                proxy_pass http://node2.lvqing.com;
          }
}	

可以看到nginx基于ssl模块的功能已经配置好了
image.png

猜你喜欢

转载自blog.csdn.net/weixin_44288087/article/details/85268419