Nginx + SSL + HTTP/2 + Rails 在 Mac 本機開發設定

2017-11-15 10:50:01来源:https://ihower.tw/blog/archives/8861作者:ihower { blogging }人点击

分享


有一阵子 Rails 在本机开发流行Pow
,但是因为缺少维护问题多多,我个人是不太爱用。平常我也没有需要一直开新专案,所以偏好自己在 Mac 上安装 Nginx 做 reverse-proxy 导流,而且还可以把 HTTP/2 打开加快静态档案下载速度。



以下示範如何将https://ihower.localhost
导流进localhost:3001


1. 编辑 /etc/hosts

sudo vi /etc/hosts 加上


127.0.0.1 ihower.localhost
2. 产生自签的 SSL key


以下指令参考自
https://localhost
这篇文章


cd; mkdir .ssl
openssl req -newkey rsa:2048 -x509 -nodes -keyout .ssl/ihower.key -new -out .ssl/ihower.crt -subj /CN=ihower.localhost -reqexts SAN -extensions SAN -config <(cat /System/Library/OpenSSL/openssl.cnf <(printf '[SAN]/nsubjectAltName=DNS:ihower.localhost')) -sha256 -days 3650
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain .ssl/ihower.crt

这样会产生 ihower.localhost 的 SSL key 放在 ~/.ssh/ 下


3. 安装和设定 Nginx
brew install nginx

编辑 /usr/local/etc/nginx/nginx.conf,新增一段:


server {
listen 80;
server_name ihower.localhost;
root /Users/ihower/projects/ihower/public; # 你的 Rails 项目的 public 目录
listen 443 ssl http2;
ssl_certificate /Users/ihower/.ssl/ihower.crt;
ssl_certificate_key /Users/ihower/.ssl/ihower.key;
location / {
proxy_pass http://localhost:3001;
proxy_set_headerHost $host;
}
}

重启 Nginx


sudo brew services stop nginx
sudo brew services start nginx
4. 启动 Rails 在 Port 3001
rails s -p 3001


打开浏览器就前往https://ihower.localhost
就有 SSL 又有 HTTP/2 啦。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台