[Nginx]反向代理Node将3000端口访问转换成80端口
来源:互联网 发布:员工数据保密协议 编辑:程序博客网 时间:2024/06/05 16:21
[Nginx]反向代理Node将3000端口访问转换成80端口(https443端口)
@Author GQ 2017年05月15日 最近刚接触node,用express搭建,node默认是3000端口,当然也可以自己改,但是服务器默认是80,然而将node改成80并没有权限,所以nginx将是最好的选择!2017年07月26日由于需要支持微信小程序,必须改成https请求,所以记录下: http => https2017年07月31日微信小程序居然提示不支持TLSv1,然而我的Nginx1.0.11写上TLSv1.1 和TLSv1.2还报错,更新下Nginx版本就好了(现在是1.12.1)。
目的
- 原本域名访问形式:
http://xx.xxx.xxx.xx/
- 用node搭建后访问:
http://localhost:3000
(假设是3000端口) 部署到服务器上后:
http://xx.xxx.xxx.xx:3000
阿里云默认访问端口为80 ,浏览器输入:
http://xx.xxx.xxx.xx
等于http://xx.xxx.xxx.xx:80
- 所以,现在要通过
nginx
改成访问域名即是 3000端口的内容:
http://xx.xxx.xxx.xx
等于http://xx.xxx.xxx.xx:3000
安装工具
- 通过
brew
安装nginx
brew install nginx
启动服务
//macsudo nginx//winC:\server\nginx-1.0.2>start nginx
其他命令
//停止C:\server\nginx-1.0.2>nginx -s stopC:\server\nginx-1.0.2>nginx -s quit//重载C:\server\nginx-1.0.2>nginx -s reload//查看版本C:\server\nginx-1.0.2>nginx -v
**注:**stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
测试
- 打开浏览器输入
http://localhost:8080
- 配置文件
如果要进行配置可以打开/usr/local/etc/nginx/nginx.conf
文件进行修改,比如配置域名,端口号等等。
- 检测配置是否正确(注意在nginx目录下)
//macsudo nginx -t//winnginx.exe -t -c conf/nginx.conf
配置文件
...省略...server { #阿里服务器是默认80 listen 80; #这里服务名称 远程写域名,本地写localhost #server_name abc.com www.abc.com; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #node用的3000端口就这样写 proxy_pass http://127.0.0.1:3000; root html; index index.html index.htm; }...省略...
Nginx配置支持https
首先了解一下http和https的区别:
1. http是超文本传输协议的明文传输,不安全;https则是ssl加密传输协议,安全;
2. https协议需要申请证书;
3. http默认端口80;https默认端口443
什么公钥和私钥,加密和解密就不说了,下面看具体实现:
阿里免费证书链接地址 点击
购买
选择图中配置即可显示0元立即购买
- 注意此证书有效期1年
然后去控制台 安全/证书服务
下查看和提交并且等待签发,一般还是很快的1天内就下来了。
这是阿里一个已签发的证书,我使用的是Nginx
配置,如下:
找到nginx
的安装目录,新建一个cert
文件夹,将下载的文件全部复制进去(xxx.pem和xxx.key)
然后找到conf/nginx.conf
文件打开编辑Http Server 那段带#注释掉的内容(阿里云有这段内容直接复制改一下即可)
#HTTPS server server { listen 443 ssl; server_name 这里是你的域名www.baidu.com; ssl_certificate ../cert/xxx.pem; ssl_certificate_key ../cert/xxx.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers 这里填的阿里云生成的一长串; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:3000; root html; index index.html index.htm; } }
然后保存。
然后重启, 在nginx根目录路下执行命令行nginx -s reload
注意 : 我用的nginx版本是1.0.11的,ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
这一行会一直报错:
提示说 invalid TSLv1.1
或者invalid TSLv1.2
所以直接删掉后两个TSL版本改为ssl_protocols TLSv1;
可以正常使用;
- 再次执行重启命令即可
但由于微信小程序提示说明不支持 TSLv1
低版本,还是辛苦下 升级Nginx 按照之前的配置即可。
- [Nginx]反向代理Node将3000端口访问转换成80端口
- nginx反向代理,网站访问地址默认80端口
- Centos配置nginx反向代理8080端口到80端口
- Nginx反向代理设置从80端口转向其他端口
- 利用Nginx反向代理解决服务器80端口被封
- Nginx反向代理的端口总是80的问题
- nginx 反向代理 端口设置问题
- Nginx反向代理关于端口的问题
- Nginx反向代理端口域名无法访问问题解决
- Nginx反向代理关于端口的问题
- Nginx反向代理关于端口的问题
- Nginx反向代理关于端口的问题
- Nginx反向代理端口域名无法访问问题解决
- Nginx反向代理80端口,实现同一台服务器多个80端口
- Nginx监听非80端口反向代理80端口出现跳转错误
- Windows下Nginx学习历程_Nginx反向代理设置从80端口转向其他端口
- Nginx实现反向代理(同一服务器下不同端口服务映射到80端口)
- 通过 Apache 代理访问 Node.JS, 共享80端口
- Promise的理解和react等框架的简单理解笔记
- java中的访问修饰符--public、protected、default、private
- 内存基本处理工具——全局函数
- MyBatis配置文件resultMap可省略的情况
- android viewpager 切换动画
- [Nginx]反向代理Node将3000端口访问转换成80端口
- 图论500题
- oracle数据库 锁表 解锁
- Android 命名规范 (提高代码可维护性)
- nodejs中的session
- 如何获取U盘的状态
- Android RecyclerView适配器的基本工作流程
- 学习笔记:JavaScript-入门篇
- 教女友学习机器学习0X00——简单介绍与线性回归