安装
通过homebrew安装
如果没有安装homebrew,可以先安装homebrew
1. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. 如果homebrew显示443,尝试切换手机热点安装
3. brew安装成功后 brew install nginx
配置nginx
在nginx目录下的servers文件内创建一个项目配置文件
vi xxx.com.conf
server {
listen 80; # 端口号 默认80
server_name www.xxx.com; # 网站域名
charset utf-8;
index index.html index.htm index.php;
error_page 404 /404.html;
error_page 500 502 503 504 /busy.html;
client_max_body_size 10m;
client_body_timeout 900s;
access_log /tmp/xxx.log; #项目日志文件
error_log /tmp/xxx.error.log; #项目错误日志文件
location /pc { # vue项目history模式指向目录,如果是放入服务器根目录直接指向/即可,解决翻新404
root /Users/zhenghuihuang/Documents/work/zero/pc/pc_bosera/dist; #项目目录
index /pc/index.html;
try_files $uri $uri/ /pc/index.html;
add_header Cache-Control no-cache; # 禁止缓存页面
}
}
配置完成后 sudo nginx -t 检查是否有错误
最后 sudo nginx -s reload 保存并重启
gzip压缩
server {
gzip on; # 开启gzip压缩
gzip_static on;
gzip_min_length 10k;
gzip_comp_level 8;
gzip_vary on;
gzip_buffers 4 16k;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
}
项目开启gzip后,重启nginx可能没有生效,可以先只配置初始两项
gzip on; # 开启gzip压缩
gzip_static on;
重启nginx后,gzip生效后可以再把其它配置项加上
线上跨域配置
server {
location ^~/apis/ { # 代理跨域 apis字段可以自定义
rewrite ^/apis/(.*)$ /$1 break; # apis与后端接口path字段相同
proxy_pass https://xxx.com/; # 需要做跨域的域名
}
}
本地跨域配置
server {
listen yyyy; # 监听的端口号
server_name 192.168.0.x; # 本地ip
charset utf-8;
location ^~/apis/ {
rewrite ^/apis/(.*)$ /$1 break;
proxy_pass https://xxx.com/; # 需要代理的域名
}
location / {
proxy_pass http://192.168.0.x:xxxx; #本地项目的ip+端口号
}
}
本地项目的端口号必须和listen的端口号不一致,打开项目时,使用server_name + listen的本地地址查看项目,主要是通过listen的端口号进行代理的
负载均衡
- 分发的服务器配置好项目文件和nginx
- 主服务器进行分发,配置相应参数
upstream xxx { # 名称自定义
# 负载均衡的服务器地址, 默认使用轮询的方式进行负载
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server {
location / {
proxy_pass http://xxx; # upstream定义的名称
}
}
配置完重启服务器,在负载的服务器log上查看日志情况是否成功