Nginx常用来部署前端打包后的项目,在日常中也会经常使用到,所以关于这一块的使用我们需要熟练掌握
1 nginx的安装部署
-
下载对应的nginx版本的gz压缩包 =》 nginx-1.14.2.tar.gz => 解压 tar -zxvf nginx-1.14.2.tar.gz
-
安装对应的环境
- gcc && g++
yum install gcc-c++ - pcre
yum install -y pcre pcre-devel - zlib
yum install -y zlib zlib-devel - openssl
yum install -y openssl openssl-devel
- gcc && g++
-
创建一个nginx安装目录 mkdir nginx,然后进入nginx解压文件夹准备部署
cd nginx-1.14.2
-
指定文件安装路径 /nginx-1.14.2
./configure --prefix=/home/ylb/nginx --with-http_ssl_module -with-http_stub_status_module //ssl https通信 -
make #编译
make install #安装 -
启动nginx
修改配置文件 =》 conf/nginx.conf
sbin => ./nginx -t => 查看是否安装成功
./nginx => 启动nginx -
查询配置参数
./nginx -V
对于已安装的nginx需要修改配置参数
./configure --prefix=/home/lege/nginx …配置参数
./nginx -s stop => 停止
./nginx -s reload => 重启
2 常用路径配置
- 路由转发(举例说明)
location /api {
add_header Acess-Controller-Allow-Origin *; #常用来配置跨域
proxy_set_header X-Real_Ip $remote_addr;
proxy_set_header X-Forwared-for $proxy_add_x_forwarded_for;
# proxy_pass http://10.100.0.227:9090; #实际指向地址
proxy_redirect off;
}
- websocket转发
location /websocket {
proxy_set_header Upgrade $http_upgrade
proxy_set_header Connection 'upgrade';
# proxy_pass http://10.100.0.227:9090/websocket; #实际指向地址
}
- 常用的转发路径注意点
如上例中,/api 在匹配路径的时候,会将 含有/api的地址拦截并进行转发,此时转发路径可以有俩种选择,一种是带上这个匹配路径 /api,还有一种是不带上这个匹配路径:
proxy_pass: http://server/; #不带匹配路径
proxy_pass: hhtp://server; #带匹配路径
server {
access_log /home/access.log;
error_log /home/error.log;
server_name h5.xxx.com;
location /abc {
proxy_pass http://server_url;
}
location /abc {
proxy_pass http://server_url/;
}
}
比如请求 /abc/b.html
如上两个匹配成功后,实际代理的目标url分别是
http://server_url/abc/b.html (把/abc/b.html拼接到http://server_url之后)
http://server_url/b.html (把/abc/b.html的/abc去掉之后,拼接到http://server_url/之后)
关于优先级还有模糊匹配的详情可参考: