写在前面的话
本人是一个前端,在做一些基本的前后端分离的东西,本文只是为了展示一个可行的,但并非完美的nginx反向代理,demo写的出来,架构可行,其余的交给专业的人把
前后端分离介绍
做前后端彻底分离的时候
大体分三部分 nginx node(仅仅负责显示网页和打辅助) java/php/python...
今天看一下nginx 反向代理
因为前端最多的用途仅仅是 显示web网页 再打辅助的时候可能会做一些透传神马的,这些东西对服务器来说压力都不大,所以可以把多个web服务放到一个服务器上
至于翻车了咋办, 找运维啊
具体内容
- 安装nginx
不在讨论范围之内 - 查看nginx 相关
nginx -t
这时一般会显示
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
这样我们就看到了config的路径,而且nginx也告诉你 你这个config 能用配置没问题
- 修改config
个人的习惯是 将80 端口写在config主文件中 其余的都是include进去
...
http {
...
server_tokens off; //个人觉得将nginx版本显示在客户端的network中 并非一个正确的习惯
...
server {
listen 80;
#listen [::]:80 default_server;
server_name www.xxx.com;
return 301 https://www.xxx.com; //转发为https
...
location / {
proxy_pass http://127.0.0.1:XXX; // 这个是历史遗留问题 当初没做https的反向代理
}
...
}
...
server {
listen 443 ssl http2; // 注意版本,低版本未必支持http2
# listen [::]:443 ssl http2 default_server;
server_name www.xxx.com;
...
// 这里是https 证书相关
ssl_certificate "ssl/www/www.fzcode.com.pem";
ssl_certificate_key "ssl/www/www.fzcode.com.key";
// 缓存相关 把这个弄好 比什么首页同构啊,什么ssr啊 有效果多了
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
...
location / {
proxy_pass http://127.0.0.1:XXX; // 转发到某端口的服务
}
...
}
}
- 检查config 是否成功
nginx -t
5.https证书相关
阿里买的域名可以免费领一年的 https证书
xi
网友评论