1.运行一键安装命令
yum install -y make cmake gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel && wget http://nginx.org/download/nginx-1.12.2.tar.gz && tar zxvf nginx-1.12.2.tar.gz && cd nginx-1.12.2 && ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module && make && make install && ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
2.默认安装路径
/usr/local/nginx/sbin/nginx
3.启动
cd /usr/local/nginx/sbin
./nginx
/usr/local/nginx/sbin/nginx
cd /usr/local/nginx/sbin
./nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
4.检查nginx配置文件
cd /usr/local/nginx/sbin
./nginx -t
./nginx -t -c /usr/local/nginx/conf/nginx.conf
5.平滑的重启,修改配置后,重新加载配置
cd /usr/local/nginx/sbin
./nginx -s reload
6.关闭nginx
cd /usr/local/nginx/sbin
./nginx -s stop
./nginx -s quit
7.reopen重新打开日志文件
cd /usr/local/nginx/sbin
./nginx -s reopen
8.其他命令重启、关闭nginx
ps -ef | grep nginx
kill -QUIT 主进程号
kill -TERM 主进程号
pkill -9 nginx
kill -HUP 主进程号
8. Nginx动静分离(静态资源和动态资源来自于不同的服务器)
后端服务器集群是动态数据的来源,nginx作为http服务器代理用来管理后端所需文件和静态资源,在nginx服务器中,准备好访问的静态资源可以通过域名url地址访问。 添加server案例(以Linux系统为例)
server{
listen 80;
server_name www.image.com;#这里填写域名即可绑定域名
location /{
root /home/static; #关键字root配置项为静态资源的根目录
index default.html #没有找到指定静态资源时默认访问的静态资源
}
}
具体流转过程如下:请求地址http://www.image.com/xyy.png匹配server中的location后将静态资源名称tp.png衔接在root配置项后,拼接成资源在Nginx服务器上的绝对地址/home/static/tp.png根据地址拿到静态资源返回到浏览器页面给用户展示。
root配置项:可以是文件夹绝对路径,如Linux (root /home/static)、Windows(root C:/static)。也可以是文件夹相对路径root static(表示在nginx安装的根目录有一个文件夹叫做static)。
index配置项:表示当访问请求匹配到location中的root后,在没有找到指定静态资源时默认访问的静态资源地址。index也可以配置多个静态资源,例如:index default1.html default2.html。如果静态资源/home/static/default1.html不存在则接着验证/home/static/default2.html是否存在,存在则用/default2.html在该server中发起内部重定向去重新匹配location)
9.生产跨域配置
proxy_pass
既是把请求代理到其他主机,其中 http://www.b.com/ 写法和 http://www.b.com写法的区别如下:
不带/
location /html/
{
proxy_pass http: //b.com:8300;
}
带/
location /html/
{
proxy_pass http: //b.com:8300/;
}
上面两种配置,区别只在于proxy_pass转发的路径后是否带 “/”。
针对情况1,如果访问url = http://server/html/test.jsp,则被nginx代理后,请求路径会便问http://proxy_pass/html/test.jsp,将test/ 作为根路径,请求test/路径下的资源。
针对情况2,如果访问url = http://server/html/test.jsp,则被nginx代理后,请求路径会变为 http://proxy_pass/test.jsp,直接访问server的根资源。
修改配置后重启nginx代理就成功了。
|