Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特色是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。html
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,所以加密的详细内容就须要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL代表它使用了HTTP,但HTTPS存在不一样于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通信方法。如今它被普遍用于万维网上安全敏感的通信,例如交易支付方面。node
## 准备基本的东西 yum install gcc-c++ yum -y install pcre* yum -y install openssl* ## 把下载文件、站点数据都放到 home 文件夹里面 ## 先下载 Nginx,目前最新稳定版本是1.12.2 wget http://nginx.org/download/nginx-1.12.2.tar.gz ## 解压压缩包 tar -zxvf nginx-1.12.2.tar.gz ## 进入文件夹,准备安装 cd nginx-1.12.2 ## 设置安装目录为 /usr/local/nginx ## 由于要使用ssl 因此须要如下额外的模块 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module ## 若是没有报错,开始编译安装 make ## make 这步可能会报错 ## ./configure: error: SSL modules require the OpenSSL library. ## 再安装一些东西 ## yum -y install openssl openssl-devel ## 安装 make install ## 启动nginx服务 cd /usr/local/nginx/sbin ./nginx ## 先搞一个简单的服务吧 ## 在 home 文件夹下面搞 cd /home mkdir wwwroot cd wwwroot mkdir www.onlyling.com ## 把站点程序放到 `www.onlyling.com` 文件夹 ## 程序启动占用 3000 端口好 ## 静态资源目录 /home/wwwroot/www.onlyling.com/app/public ## 修改 nginx.conf ,通常状况使用软连的方式,但仍是不太懂,直接修改默认的配置 cd /usr/local/nginx/conf vi nginx.conf ## 简单的配置一个 http 服务 ## 参考了 Thinkjs 线上部署使用 Nginx 的代码 ## https://thinkjs.org/zh-cn/doc/3.0/deploy.html server { listen 80; server_name www.onlyling.com; root /home/wwwroot/www.onlyling.com/app/public; set $node_port 3000; location / { proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://127.0.0.1:$node_port$request_uri; proxy_redirect off; root html; index index.html index.htm; } } ## 保存好后重启 ## 没有配置别名,嗯,有点长 /usr/local/nginx/sbin/nginx -s reload ## www.onlyling.com 解析到服务器,应该就能够访问这个站点了
此次证书是本身搞的,用的是 acme.sh
查看仓库,能够实现每60天自动更新一次证书,很棒哦。nginx
## 按照文档提示安装 ## 安装的时候会提示安装另外一个服务器程序,咱们用 Nginx 了,因此不须要 curl https://get.acme.sh | sh ## 验证身份、生成证书 ## 验证身份其实就是在站点生成一个文件,经过域名访问文件,有就经过 ## 因此后面的目录指定到了站点的静态资源文件(反正个人程序里就把 public 设置成根目录) acme.sh --issue -d www.onlyling --webroot /home/wwwroot/www.onlyling.com/app/public ## 等待一分钟左右吧 ## 生成了蛮多的文件 ## 复制证书 ## 可能会提示没有文件夹,手动按目录建立 ## 可是最后一步,我没有执行成功,就手动配置了 ## 证书已经复制到了 /etc/nginx/ssl 文件夹 acme.sh --installcert -d <domain>.com \ --key-file /etc/nginx/ssl/<domain>.key \ --fullchain-file /etc/nginx/ssl/fullchain.cer \ --reloadcmd "service nginx force-reload"
cd /usr/local/nginx/conf vi nginx.conf ## 在刚刚配置 http 那里添加一个 https 服务 server { listen 443 ssl; server_name www.onlyling.com; root /home/wwwroot/www.onlyling.com/app/public; set $node_port 3000; ssl_certificate /etc/nginx/ssl/fullchain.cer; ssl_certificate_key /etc/nginx/ssl/www.onlyling.com.key; keepalive_timeout 70; fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; server_tokens off; location / { proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://127.0.0.1:$node_port$request_uri; proxy_redirect off; root html; index index.html index.htm; } } ## 若是只想开启 https ## 在 http 配置处添加 ## rewrite ^ https://$http_host$request_uri? permanent; ## 重启 Nginx 服务 ## 大概、应该、可能就搞定了 ## 惟一不肯定的是 acme.sh 可否自动更新,毕竟没有按照它的步骤走下去
原文阅读:从零开始配置 Nginx + HTTPSc++