http站点部署相关问题
server {
listen 80;
server_name 你的域名; # 没有可以写_,或者写ip,或者把这一行删掉,那你就只能通过ip访问
location / {
try_files $uri $uri/ /index.html; # 解决刷新404问题,单文件应用部署必须要这个
root /你的index.html文件所在的目录;
index index.html index.htm;
}
}
nginx部署前端项目最核心的部分就这么一点点
如果用域名的话,你要在你的域名控制台,新加一条A记录,将域名映射到你的公网ip地址上

然后,你的服务器,要开放对应的端口,可能要开两次,服务器本身一次,云厂商安全设置一次
如果有反向代理,那就匹配对应的路径,代理到后端的某个地址
例如
location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass http://127.0.0.1:8080/api/; # 代理到后端地址上,注意最后面的/,加与不加还是有区别的,自己多试试就知道了,看下我专门将nginx的那个视频就好了
}
然后你访问的时候,就不要访问后端地址了,而是访问nginx代理的端口地址
然后就是代理后端的静态文件,这个写法也是固定的
location /uploads/ {
alias /www/wwwroot/gvb/gvb_server/uploads/; # 注意最后面的/,这个是必须的,这里会有权限问题,要么nginx用root权限跑,要么设置目录的权限和nginx运行用户的权限一致
}
最重要的一点
访问达不到你的预期,400问题,就去看nginx的错误日志
错误日志没有就看请求日志
页面没问题,数据出不来,就看后端的日志
一点要学会看日志
课程示例的index.html
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>枫枫知道</title><style>body{margin:0;display:flex;justify-content:center;align-items:center;height:100vh}*{box-sizing:border-box}#box{color:#555}#box a{color:#1a54d2;text-decoration:none}</style></head><body><div id="box">枫枫你好,欢迎来到<a href="https://www.fengfengzhidao.com/"target="_blank">枫枫知道</a></div></body></html>
https部署
首先,ssl证书可以免费获取,每个云平台都有
我知道的,宝塔,七牛,腾讯云都是有的
如果你的网站本来就是跑在宝塔里面的,那就直接用宝塔那个就行了,傻瓜式操作就好了
一般的免费ssl证书,证书是跟着域名走的,一个域名一个ssl证书
ssl相关配置就是
server {
listen 443 ssl;
server_name 你的域名;
ssl_certificate 签名证书的路径;
ssl_certificate_key 私钥的路径; # 一般名字后面有个key
location / {
try_files $uri $uri/ /index.html;
root 你的index所在的目录;
index index.html index.htm;
}
}
七牛云ssl配置
演示一下,七牛云的ssl配置吧
其他云平台都是大同小异的
https://portal.qiniu.com/certificate/apply

反正找到价格为0的这个证书就行
然后补全相关信息就好了

公司信息,和联系人信息,随便写,格式如下

然后去配置CNME

然后点击验证域名,应该马上就可以了,然后订单状态是已签发

然后点击查看证书,下载证书,证书格式选择nginx的

解压之后,一个pem文件,一个key文件

然后改下nginx配置文件,例如
还有一个问题需要注意,证书的私钥文件不能被前端访问到,这里我就忽略这个问题了
server {
listen 443 ssl;
server_name test.fengfengzhidao.com;
ssl_certificate /opt/test/test.fengfengzhidao.com_cert_chain.pem;
ssl_certificate_key /opt/test/test.fengfengzhidao.com_key.key;
location / {
try_files $uri $uri/ /index.html;
root /opt/test/;
index index.html index.htm;
}
}
然后重启nginx
nginx -t # 先用这个命令看看自己配置有没有写错
nginx -s reload
然后访问页面就可以了

然后,如果访问http的话,可以设置一个重定向
server {
listen 80;
server_name test.fengfengzhidao.com;
location / {
rewrite ^(.*)$ https://test.fengfengzhidao.com;
}
}