nginx.conf,ssl安全性A+

本文详细介绍了Nginx的HTTPS配置方法,并通过优化设置实现了高性能的安全连接。包括SSL证书配置、加密套件选择、会话缓存及HTTP/2支持等内容。

nginx.conf
ssl配置https://www.ssllabs.com/ssltest/ 监测A+

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
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;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    limit_req_zone  $binary_remote_addr  zone=req_one:10m rate=50r/s;
    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;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  g.9ishell.com 9ishell.com;
        root         /usr/share/nginx/html;

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

        location / {
	limit_req   zone=req_one  burst=120;
        }
	location /test {
		proxy_pass http://127.0.0.1:81;
		allow 127.0.0.1;
		deny all;
	}

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

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
	server {
        listen       81;
        server_name  _;
        root         /usr/share/nginx/htmltest;

        # Load configuration files for the default server block.

        location / {
        }

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

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


# Settings for a TLS enabled server.
#
    server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  g.9ishell.com 9ishell.com;
        root         /usr/share/nginx/html;
	ssl on;
        ssl_certificate "/etc/pki/nginx/server.pem";
        ssl_certificate_key "/etc/pki/nginx/private/server.key";
	
        ssl_session_timeout  5m;
		ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
			#ssl_ciphers HIGH:!aNULL:!MD5;
		
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
		ssl_session_cache shared:SSL:10m;	

		ssl_stapling on;
		ssl_stapling_verify on;
		resolver 223.5.5.5 223.6.6.6 valid=300s;
		resolver_timeout 10s;	

		ssl_dhparam "/etc/pki/nginx/dhparams.pem";
			ssl_prefer_server_ciphers on;
		
		add_header Strict-Transport-Security max-age=63072000;
		add_header X-Frame-Options DENY;
		add_header X-Content-Type-Options nosniff;
        # 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 {
        }
    }

}


openssl dhparam -out dhparams.pem 4096

### nginx.confnginx.conf.default 的区别 #### 1. 定义与用途 `nginx.conf` 是 Nginx 实际使用的配置文件,通常位于 `/etc/nginx/` 或 `/usr/local/nginx/conf/` 目录下。它是 Nginx 启动时默认读取的配置文件[^1]。 而 `nginx.conf.default` 则是一个模板文件或备份文件,在某些 Linux 发行版中提供给用户作为初始参考配置。它通常是未被修改过的原始配置文件副本,用于帮助用户理解如何编写和调整实际的 `nginx.conf` 文件[^3]。 --- #### 2. 默认状态 当通过包管理器(如 yum、apt-get)安装 Nginx 时,可能会同时生成两个文件:`nginx.conf` 和 `nginx.conf.default`。其中: - **`nginx.conf`** 是当前正在生效的配置文件。 - **`nginx.conf.default`** 只是一个存档版本,可能从未被激活过。如果用户没有手动编辑过 `nginx.conf`,那么它的内容很可能与 `nginx.conf.default` 完全一致[^2]。 --- #### 3. 使用场景 - 如果需要恢复到最初的配置状态,可以通过复制 `nginx.conf.default` 来覆盖现有的 `nginx.conf` 文件。这在调试错误或者重新初始化环境时非常有用。 ```bash cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf ``` - 当然也可以仅将其作为一个学习资源来研究标准配置项及其含义。 --- #### 4. 加载优先级 无论是否存在 `nginx.conf.default` 文件,Nginx 在启动过程中只会查找并加载名为 `nginx.conf` 的主配置文件。除非显式指定其他路径,例如使用命令参数 `-c`: ```bash /usr/sbin/nginx -c /path/to/custom_nginx.conf ``` 因此即使存在 `nginx.conf.default` ,只要系统正常工作就不会对其产生任何影响[^2]。 --- ### 总结 简单来说,`nginx.conf` 是当前活动中的核心配置文档;而 `nginx.conf.default` 更像是一个备用方案或者是初学者指南。两者之间并没有技术上的差异,只是角色定位不同而已。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值