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/uploadImgnginx/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/;
        }
    } 
}

配置的学习查看下一篇笔记

原文地址:https://www.cnblogs.com/pengdt/p/12304129.html