Nginx 配置http和https 同时访问

1、配置

server {

    listen      80;  //http
    listen      443 ssl; //https
    # listen       80 default_server;
    server_name 域名;
   # ssl on;
    ssl_certificate   /etc/nginx/cert/214525755810842.pem; //证书路径
    ssl_certificate_key  /etc/nginx/cert/214525755810842.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    # Load configuration files for the default server block.
    # include /etc/nginx/default.d/*.conf;
    location /{
        root /var/www/MacDonald/api/web; //项目路径
        index index.php index.html index.htm;
        location ~ \.php$ {
            try_files $uri = 404;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

    }

}


2、安装证书

文件说明:
1. 证书文件214525755810842.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214525755810842.key
( 1 ) Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214525755810842.key
( 2 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:
# HTTPS server
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}
( 3 ) 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :
server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/214525755810842.pem;
    ssl_certificate_key  cert/214525755810842.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}
保存退出。
( 4 )重启 Nginx

( 5 ) 通过 https 方式访问您的站点,测试站点证书的安装配置。如遇到证书不信任问题,请查看帮助视频

配置Nginx同时支持HTTPHTTPS访问,需要进行一些配置步骤。以下是一个基本的配置示例: 1. **安装Nginx**:确保你的服务器上已经安装了Nginx。如果没有安装,可以使用以下命令进行安装: ```bash sudo apt update sudo apt install nginx ``` 2. **获取SSL证书**:你可以使用免费的Let's Encrypt证书,或者从其他证书颁发机构获取SSL证书。假设你已经获取了SSL证书,并将证书文件放在`/etc/ssl/certs/`目录下,私钥文件放在`/etc/ssl/private/`目录下。 3. **配置Nginx**:编辑Nginx配置文件,通常位于`/etc/nginx/sites-available/default`。以下是一个示例配置: ```nginx server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /etc/ssl/certs/your_certificate.crt; ssl_certificate_key /etc/ssl/private/your_private_key.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; root /var/www/html; index index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; } } ``` 4. **测试配置并重启Nginx**: ```bash sudo nginx -t sudo systemctl restart nginx ``` ### 配置说明: - **HTTP重定向到HTTPS**:第一个`server`块监听80端口,并将所有HTTP请求重定向到HTTPS。 - **HTTPS配置**:第二个`server`块监听443端口,并配置SSL证书私钥。 - **SSL协议密码套件**:配置了TLSv1.2TLSv1.3协议,并设置了强密码套件。 通过以上配置Nginx同时支持HTTPHTTPS访问,并将所有HTTP请求重定向到HTTPS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值