linux安装nginx

1 篇文章 0 订阅
linux安装nginx
安装 GCC
yum install gcc-c++

解释:GCC用来对nginx源码进行编译
安装 PCRE pcre-devel
yum install -y pcre pcre-devel

解释:Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。
   这里需要安装两个安装包pcre和pcre-devel。
   第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。
安装 zlib
yum install -y zlib zlib-devel

解释:zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩
安装Open SSL
yum install -y openssl openssl-devel

解释:nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http)。
    如果使用了 https,需要安装 OpenSSL 库
下载地址 https://nginx.org/en/download.html

在这里插入图片描述

将下载的安装包传到该文件夹

在这里插入图片描述

解压安装包

tar -zxvf nginx-1.8.1.tar.gz

进入解压后的文件夹内,执行如下命令:

#执行配置脚本 --prefix是指定安装目录
./configure --prefix=/usr/local/nginx/nginx-1.8.1

编译:

make

安装

make install

或者

#对nginx编译和安装
make & make install

启动Nginx
进入【sbin】文件夹执行

./nginx

#启动脚本是在
# /usr/local/nginx/nginx-1.8.1/sbin/nginx
#启动,
/usr/local/nginx/nginx-1.8.1/sbin/nginx -c /usr/local/nginx/nginx-1.8.1/conf/nginx.conf
#停止
/usr/local/nginx/nginx-1.8.1/sbin/nginx -s stop
#重载
/usr/local/nginx/nginx-1.8.1/sbin/nginx -s reload
#杀掉nginx
/usr/local/nginx/nginx-1.8.1/sbin/nginx -s quit
查询nginx是否启动:

ps -ef | grep nginx

Nginx默认为80端口,启动后可以在浏览器输入自己的ip和端口号进行验证是否启动成功

在这里插入图片描述

如果浏览器访问不通,请检查是否开启防火墙限制,将防火墙关闭或将端口加入到防火墙白名单中,这里nginx的默认端口为80

#查看已放行的端口
firewall-cmd --list-all
#将80端口加入到防火墙放行白名单中,并重载防火墙
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
关闭防火墙
#临时关闭防火墙
systemctl stop firewalld.service
#永久关闭防火墙
systemctl disable firewalld.service
设置nginx 的开机启动
vim /etc/rc.local
文本底部追加
/usr/local/nginx/sbin/nginx
配置环境变量

vi /etc/profile

刷新

source /etc/profile

添加到指定文件下方

PATH=$PATH:/usr/local/nginx/nginx-1.8.1/sbin
export PATH

查看

nginx -v

修改配置端口和默认访问页面
#找到nginx的配置文件,编辑
vi /usr/local/nginx/nginx-1.8.1/conf/nginx.conf
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;




    server {
          listen       80;
          server_name  www.***.com;
          location / {
                root        /data/static_html/customer-html-manage;
                index       /html/login/login.html;
                error_page  404             /html/login/login.html;
                error_page  500 502 503 504 /html/500.html;
          }
    }

    server {
          listen       6001;
          server_name  www.api.*****.com;
         
	  location /customer-web {
                proxy_pass  http://127.0.0.1:8080/customer-web;
                proxy_set_header host  $host;
                proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
          }

    }

nginx配置文件详细说明:
#user  nobody;#运行nginx的默认账号
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes  1;
 
#事件区块开始
events {
    #单个进程最大链接数(最大连接数=连接数*进程数)
    #根据硬件调整,与前面工作进程配合起来用,尽量大,但别把CPU跑到100%就行,每个进程允许的最多连接数,理论上为每台nginx服务器的最大连接数
    worker_connections  1024;
}
 
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
    #include:导入外部文件mime.types,将所有types提取为文件,然后导入到nginx配置文件中。
    include       mime.types;
    #默认文件类型
    default_type  application/octet-stream;
    
    #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设置为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载,注意:如果图片显示不正常把这个改成off
    #sendfile指令指定,nginx是否调用sendfile函数(zero copy方式)来输出文件,对于普通应用,必须设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime
    sendfile        on;
    #长连接超时事件,单位是秒
    keepalive_timeout  65;
 
  
    #第一个server区块开始,表示一个独立的虚拟主机站点
    server {
        #提供服务的端口,默认80
        listen       80;
        #提供服务的域名主机名
        server_name  localhost;
 
        
        #对 “/” 启动反向代理,第一个location区块开始
        location / {
            root   html;    #服务默认启动目录,可以改成指定的目录位置
            index  index.html index.htm; #默认的首页文件,多个用空格分开
        }
 
        #错误页面路由
        error_page   500 502 503 504  /50x.html; # 出现对应的http状态码是,使用50x.html回应客户
        location = /50x.html { # location区块开始,访问50x.html
            root   html; # 指定对应的站点目录为html
        }
 
    }
 
 
}
反向代理:

前端的主流解决跨域的方式就是:1、开发生产cors解决;2、开发proxy,生产nginx解决

遇到以/police请求开头的接口,就去访问这个IP地址的后端接口。

在这里插入图片描述

动态资源与静态资源分离

在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。
一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。
在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间 。

实际上我们在代理前端的html和接口时就已经做到了动静分离。我们打包后的dist包实际上就是纯静态的资源,所以直接访问nginx静态资源服务器,就不需要经过后台的tomcat。访问接口时,就需要nginx先去访问后台服务器,拿到结果再给到浏览器.

在这里插入图片描述

如何配置

假设有比较大的图片等需要放置到服务器上,然后通过nginx来转发。或者是有一个纯前端的开源项目(如pdf.js),也需要放在服务器上。如果放在本地代码包,打包出来体积会很大。

location /image/ {
  root   /var/filecenter/;
}
location /static/ {
  root   /var/filecenter/;
}
location /car/ {
  root   /var/filecenter/;
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
  root /Users/dalaoyang/Downloads/static;
}
可以把nginx.conf分为三个部分:全局块、events块、http区域
  • **http区域块:**这块是Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。这里http块包含:http全局块、server 块

  • server块:这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。每个http块可以包括多个server块,而每个server块就相当于一个虚拟主机。每个server块也分为server全局块以及可以同时包含多个location块。
    全局server块:最常见的配置就是本虚拟机主机的监听配置和本虚拟机的名称或IP配置。

  • location块:一个server块可以配置多个location块。这块的主要作用就是基于nginx服务器接收到的请求字符串(例如:server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等共鞥,还有许多第三方模块的配置也可以在这里进行。

未完!!!!!
卸载Nginx
查询nginx服务进程

ps -ef|grep nginx

删除进程

kill -15 进程Id

查找删除ngxin文件

whereis nginx
find / -name nginx
rm -rf /usr/local/nginx

卸载nginx依赖

yum remove nginx

以是IP别名)之外的字符串(例如前面的/uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等共鞥,还有许多第三方模块的配置也可以在这里进行。

未完!!!!!
卸载Nginx
查询nginx服务进程

ps -ef|grep nginx

删除进程

kill -15 进程Id

查找删除ngxin文件

whereis nginx
find / -name nginx
rm -rf /usr/local/nginx

卸载nginx依赖

yum remove nginx

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值