zhengrenzhe's blog   About

Mac下安装Nginx并开启https

在Mac下开发要用到Nginx,若无特殊需求,使用brew安装就很方便了。但是这次需要启用https,那就得自己编译了。

OSX是基于Unix的,所以下载Nginx的源码可以直接编译,这里使用1.6稳定版。

wget http://nginx.org/download/nginx-1.6.2.tar.gz

进入Nginx的目录,configure带上选项

./configure --with-http_ssl_module

这里只需要带上http_ssl_module就好了,因为这只是测试环境,只需要https这个功能就好,其他的用默认选项。

configure完成后可以看到Nginx默认的一些路径: nginx

接着直接安装

make && make install

安装完后需要将Nginx可执行文件链接至/usr/bin中

sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

现在Nginx就装好了,启动Nginx需要root

sudo nginx

关闭Nginx使用可执行文件发送信号

sudo nginx -s "stop"

使用-h选项查看更多功能

接着启用https功能,进入配置文件目录:

cd /usr/local/nginx/conf

修改nginx.conf,删除默认注释和默认的监听80 server,在http{}中添加如下配置:

server {
    listen 443 ssl;
    server_name localhost;

    # 你的证书文件
    ssl_certificate /usr/local/nginx/conf/site-available/ca.crt;
    ssl_certificate_key /usr/local/nginx/conf/site-available/ca.key;

    root /usr/local/nginx/html;
    index index.html index.htm;

    client_max_body_size 10G;

  location / {
      # 将请求转发至3000,转发过去的请求是http而非https,可以直接处理
        proxy_pass http://localhost:3000;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_buffering off;
    }
  }
# 同时监听80,将http请求自动重定向
server {
  listen       80;
  server_name  localhost;
  add_header   Strict-Transport-Security max-age=157680000;
  # 返回301重定向,自动变为https
    return       301 https://localhost$request_uri;
}

重启Nginx,不出意外的话就没问题了。

← chrome extensions开发-3  JavaScript监听检测DOM更改 →