v1.0.2
RESTFul
允许DELETE/PUT请求
add_header Access-Control-Allow-Origin * always;
add_header Access-Control-Allow-Headers Authorization,X-Requested-With,Content-Type,Access-Token always;
add_header Access-Control-Allow-Methods * always;
location / {
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,PATCH,OPTIONS;
#支持put和delete请求
return 200;
}
proxy_pass http://;
}
error_page 404 /404.html;
win环境
效率
传输
压缩配置
- 遇到的问题:在本地开发模式下,发现app.js的容量高达几十MB,同步阻塞了页面加载
- 使用nginx访问本地前端项目,将文件压缩,提高加载速度
- 开发模式:
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 5; # 压缩等级,等级与压缩程度、硬件消耗成正比
gzip_types text/plain application/javascript application/css text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
CENTOS 6.8环境
# 查询版本号
cat /etc/issue
# 或者
cat /etc/redhat-release
版本号如下
安装
# 安装前置软件
sudo yum install yum-utils
设置yum仓库,创建文件/etc/yum.repos.d/nginx.repo
内容如下:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
vim /etc/yum.repos.d/nginx.repo
默认使用最稳定的Nginx版本,如果你更想要一个传统的,请执行下述命令
sudo yum-config-manager --enable nginx-mainline
repo配置少一个[
号。加上后再次执行成功。
接下来进入正题,开始安装:
sudo yum install nginx
很遗憾,报错了:
因为文件第一行少个[
符号,继续安装,仍然报错,库里没有nginx:
解决办法1:很遗憾,是错的
# 备份
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back-up_201907291715
# 重新下载
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum makecache
yum install epel-release
yum install nginx
解决办法2:很遗憾,不对症,错误并不是因缺少epel包导致
# 下载epel包
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# 检查epel包是存在的
rpm -q epel-release
epel包存在如下
这就费解了。
再次解决:
执行yum list | grep nginx
,发现没有Nginx_x86包
疑似下载URI问题,然而修改nginx.repo的baseurl也不行。
Nginx_x86包不存在!可能犯了什么低级错误,要么什么配置乱掉了!待续,话分两头,我们看看另一种安装方式。
换一个思维,下载安装式
在官网下载nginx-1.16.0.tar.gz
,亦可以wget下载。tar xvzf xx.gz -C 目录
解压。
# 在解压后的根目录执行
./configure --prefix=/usr/local/nginx
make && make install
# 软连接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
# 检验
nginx -V # 大写
cd /usr/local/nginx/
sbin/nginx # 启动
netstat -tlnp|grep nginx # 检查
# 配置文件
vim /usr/local/nginx/conf/nginx.conf
# 本地访问
wget 127.0.0.1:80
浏览配置
本地访问成功
服务式启动-开机自启-待续
简单使用
修改监听端口号
当前监听80
修改为9528,重载
cd nginx根目录
sudo sbin/nginx -s reload
sudo sbin/nginx # 启动
sudo sbin/nginx -s stop # 停止
待续。。。
增加新模块
编译
新增nginx-rtmp插件
cd /data/app/nginx/extends
git clone https://github.com/arut/nginx-rtmp-module # 下载插件
cd /data/app/nginx/nginx-1.16.0 # 源码目录
# 备份nginx
/usr/local/nginx/sbin/nginx -V # 查看之前编译的参数,将原参数填入下方命令
sh configure --prefix=/usr/local/nginx --add-module=/data/app/nginx/extends/nginx-rtmp-module # 预设参数,/usr/local/nginx是原nginx根目录
之前编译的参数↓
configure时,若出现checking for C compiler … found,但下述方法没能解决not found
# pcre
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz # 下载
cd 解压好的目录
sh configure
make && make install
# ssl
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
PCRE等安装中↓
如果执行configure命令时报checking for gcc... no
就安装gcc=>yum install -y gcc gcc-c++
config↓
pcre make
Nginx插件参数配置完毕后,执行make,不要加install,那是覆盖
源码下多出objs目录↓
将objs里的 nginx文件替换原nginx文件,先备份原文件.
sbin/nginx -t # 检测一下新文件
OK.重启nginx
当从CENTOS6迁移到7时,如果启动报错:找不到pcrelib.so.0,就拷贝该文件和pcrelib.so.0.0.1到/lib64.用这个命令查看少哪些包 => ldd $(which /usr/local/nginx/sbin/nginx)
PS:重新编译的时候,记得一定要把以前编译过的模块一同加到configure参数里.
非http配置
rtmp服务器配置
语法参考:https://www.cnblogs.com/lidabo/p/7099501.html