Nginx是一个高性能的Web服务器和反向代理服务器,它可以用于实现多种功能,其中之一就是支持HTTP和HTTPS协议。本文将介绍如何使用Nginx实现HTTP和HTTPS的写法。

一、配置HTTP

  1. 打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default。使用文本编辑器打开,例如:
sudo nano /etc/nginx/nginx.conf
  1. http块中添加一个新的server块,用于配置HTTP服务。例如,监听80端口:
http {
    ...
    server {
        listen 80;
        server_name example.com;
        location / {
            root /var/www/html;
            index index.html;
        }
    }
    ...
}

这里的listen 80;表示监听80端口。server_name example.com;表示指定域名为example.comlocation / { ... }表示匹配所有请求的路径,并将其根目录设置为/var/www/html,默认首页为index.html

  1. 保存并关闭配置文件。然后重新加载Nginx配置:
sudo nginx -s reload

二、配置HTTPS

  1. 生成SSL证书和私钥。可以使用OpenSSL工具生成自签名证书和私钥,命令如下:
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365

这将生成一个有效期为365天的自签名证书(cert.pem)和对应的私钥(key.pem)。在实际应用中,建议使用由权威机构颁发的证书。

  1. 将证书和私钥复制到Nginx服务器上。可以将它们放在指定的目录下,例如:
sudo cp cert.pem /etc/nginx/ssl/
sudo cp key.pem /etc/nginx/ssl/
  1. 修改Nginx配置文件,启用HTTPS服务。在http块中添加一个新的server块,用于配置HTTPS服务。例如:
http {
    ...
    server {
        listen 443 ssl;
        server_name example.com;
        ssl_certificate /etc/nginx/ssl/cert.pem;
        ssl_certificate_key /etc/nginx/ssl/key.pem;
        location / {
            root /var/www/html;
            index index.html;
        }
    }
    ...
}

这里的listen 443 ssl;表示监听443端口(HTTPS默认端口)。ssl_certificatessl_certificate_key分别指定证书文件和私钥文件的路径。其他配置与HTTP服务类似。

  1. 保存并关闭配置文件。然后重新加载Nginx配置:
sudo systemctl restart nginx

现在可以通过访问https://example.com来验证HTTPS服务是否正常工作。如果一切正常,浏览器会显示安全锁标志并提示连接已加密。