Nginx 配置http和https访问

前期准备

  • Ubuntu配置nginx: https://www.jianshu.com/p/88f9ef3b80d4
  • SSL证书:https://cloud.tencent.com/document/product/400/43473

Nginx服务器安装SSL证书

请参考:https://cloud.tencent.com/document/product/400/35244

http和https同时访问项目

1. 需求

http请求与https请求行为一致,即http请求与https请求访问同一个路径(项目)。

2. 实现方法
图片.png

配置好后记得重启nginx。

http和https分开访问项目

1. 需求

单独配置https,并在https下配置好location

2. 实现方法
图片.png

配置好后记得重启nginx。

http请求重定向到https

1. 需求

舍弃http,只能使用https访问

2. 实现方法
图片.png

配置好后记得重启nginx。

问题记录

1. Linux系统下ngnix使用HTTPS协议启动报错:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.c

报错原因:

未安装SSL模块--ngx_http_ssl_module

解决办法:

1)执行安装: ./configure --prefix=/usr/local/nginx
2)安装https认证模块(上文未安装这个导致使用https协议保存):./configure --with-http_ssl_module
3)执行:make(这里不要进行make install,否则就是覆盖安装)
4)然后备份原有已安装好的nginx: cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
5)然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态): cp ./objs/nginx /usr/local/nginx/sbin/ 然后启动nginx,仍可以通过命令查看是否已经加入成功 /usr/local/nginx/sbin/nginx -V

安装了https认证模块的configure 参数应该包含如下红框内容:


图片.png

你可能感兴趣的:(Nginx 配置http和https访问)