Nginx安装
nginx是反向代理的神器,用来监听服务器的所有访问,端口是80,是放置图片,静态网页的最佳神器
window安装
直接去官网下载解压就行,用来调试vue的打包和测试本地文件上传特别的香
linux虚拟机
- 需要先下载依赖库,查看linux的依赖库
- 从官网下载tar.gz安装包,用Xftp工具搬到
usr/local
目录下 - 解压安装启动
# 解压
tar -zxvf nginx-1.xx.tar.gz
# 进入
cd nginx-1.xx
# 下面的 ./configure 选一个使用,或者复合使用
# 纯净版
./configure --prefix=/usr/local/nginx
# 添加ssl_module,支持 https
./configure --with-http_ssl_module --prefix=/usr/local/nginx
# 添加lua_module,这个比较麻烦,查看【nginx使用lua】笔记
# 编译
make
# 安装
make install
# 进入文件夹
cd /usr/local/nginx-1.xx/sbin/
# 启动
./nginx
# 停止,直接查找nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop
module注意
- 上面提及了几个module,这是属于nginx的插件,有些是tar.gz就内置了,有些得自己另外下载,还想使用其他module可以查看这个文章
- 还有一点就是如果你已经安装了nginx,而且运行了很久,包括图片也都是上传在nginx里面,导致nginx特别的大,数据也很重要,此时要添加新的module是需要把原本的程序关了,然后改了名字,比如nignx2,重新安装一个新的nginx,然后把nginx2里面的数据移到新的nginx里,一点要小心点,不然图片,项目数据丢失根本就找不回来
文件放在哪
nginx不跟tomocat一样可以开启多个,因为他只有80端口,他的文件是放在html
文件夹里的,比如一个aa文件夹,需要xxx.com/aa/aa.html才能访问到,去除路径上的地址可以通过配置nginx.conf实现
nginx配置
下面是修改配置的地址和方式,但是建议用Xftp把文件拿到window,改完再放回去
修改了配置文件,一点要重启,先停止,再启动
cd /usr/local/nginx-1.xx/conf/
vi nginx.conf
图片服务器
因为查看图片也需要服务器返回,所以同意把文件放在nginx/html/uploadImg
和nginx/html/uploadFile
里就行,不管是nodejs提交文件还是java提交文件都放到这两个路径下,这个有个特别重要的建议,查看【无分类/经验教训】笔记
新上传的图片无法访问
需要在配置文件的最顶端设置user root;
本人使用的配置
# 解决新上传的图片无法访问
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location /uploadFile/ {
# 针对图片文件夹的防盗链
valid_referers none block *.cnblogs.com *.pdt1997.top;
if ($invalid_referer) {
return 403;
}
# 设置过期时间为10小时
expires 10h;
}
}
# 前后端分离二级域名的核心改动就是 server_name 的配置
# vue二级域名
server {
listen 80;
server_name pdt1997.top www.pdt1997.top;
location / {
try_files $uri $uri /www_vue/index.html;
}
# 代理图片
location ~^ /uploadFile {
proxy_pass http://localhost/;
}
}
# react二级域名
server {
listen 80;
server_name react.pdt1997.top;
location / {
try_files $uri $uri /react_demo/index.html;
}
# 代理图片
location ~^ /uploadFile {
proxy_pass http://localhost/;
}
}
# nodejs 端口
server {
listen 80;
server_name koa.pdt1997.top;
location / {
proxy_pass http://localhost:3000/;
}
}
# java 端口
server {
listen 80;
server_name ssm.pdt1997.top;
location / {
proxy_pass http://localhost:8080/;
}
}
# https配置
server {
listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
server_name koa.pdt1997.top; #将localhost修改为您证书绑定的域名,例如:www.example.com。
ssl_certificate /usr/local/nginx/conf/cert/3737199_koa.pdt1997.top.pem; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key /usr/local/nginx/conf/cert/3737199_koa.pdt1997.top.key; #将domain name.key替换成您证书的密钥文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:3000/;
}
}
}
配置的学习查看下一篇笔记