Ubuntu-18.04.3安装nginx及配置

Nginx

nginx可以代理后端服务器,也可以做静态文件分发(即打包成静态资源后的前端)。

编译安装nginx

1.解决源码编译安装nginx所需的软件依赖

yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

2.下载淘宝nginx的源代码包

wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz

3.解压缩源码包

​cd ~  #安装在非root 目录下,方便后期修改使用
tar -zxvf tengine-2.3.0.tar.gz -C ./

4.进入源码目录开始编译安装

​cd  tengine-2.3.0
编译安装三部曲: 
./configure --prefix=/home/root123/tengine-2.3.0/nginx --conf-path=/home/root123/tengine-2.3.0/nginx/conf/nginx.conf  # 指定配置文件安装nginx
make && make install 

5.配置nginx环境变量,vim /etc/environment

在变量最后配置变量如下内容PATH="/home/root123/tengine-2.3.0/nginx/sbin"
读取文件source /etc/environment

6.启动nginx

nginx -c /home/root123/tngx230/nginx/conf/nginx.conf # 指定配置文件启动
nginx -t  #检测nginx.conf的语法
nginx -s reload  # 平滑的重启(等待所有链接都断开),配置重载(当重载配置过程中发现文件配置错误,则会继续采用原配置文件进行工作)。
      -s stop  # 快速停止nginx进程
	  -s quit  # 优雅停止nginx进程
	  -s reopen  # 切割日志(场景:mv走原日志文件,但此时nginx还是在向mv目标位置的文件输出log,并没有重新在新文件中输出,此时就需要mv后,结合该指令,实现将旧日志移走,让nginx继续将log输出到旧位置的文件中。)
  • nginx目录说明
conf  存放nginx配置文件的
html  存放前端文件目录  ,首页文件就在这里
logs  存放nginx运行日志,错误日志
sbin  存放nginx执行脚本的
/opt/tngx230/html就是 nginx的网页根目录,放入任意的文件内容都可以被解析到
比如在目录下放入一张jpg图片  访问IP地址会自动访问显示这张图片
  • nginx配置文件
全局块, 从配置文件开始到events 块之间的内容,主要会设置-些影响nginx服务器整体运行的配置指令。比如worker processes 1; worker processes值越大,可以支持的并发处理量也越多。

events块涉及的指令主要影响Nginx服务器与用户的网络连接, 比如worker connections 1024;支持的最大连接数~

server块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一-样的 ,该技术的产生是为了
节省互联网服务器硬件成本。
每个http块可以包括多个server块,而每个server块就相当于-一个虚拟主机。中
而每个server块也分为全局server块,以及可以同时包含多个locaton块。
#全局变量写在最外层
worker_processes  4;

events {
    worker_connections  1024;
}

#定义nginx核心功能的参数
http {
    include       /etc/nginx/mime.types;  # 导入其他配置文件
    include       /etc/nginx/config.d/*.conf;
    default_type  application/octet-stream;
    #定义nginx访问日志格式
    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;
    #对图片等静态资源压缩,提升传输效率
    gzip  on;
    #nginx的主页面功能都是server参数提供的
    #server被称作是虚拟主机
    server {
        listen       80;         # nginx监听的端口
        listen       [::]:8080;  # ipv6监听的端口
        server_name  localhost;  # 填写服务器的域名,或者ip,或者localhost,或者你想起的域名(好像只能在局域网内用该域名访问到)
        # 当访问 xxx:80/api 时,就会走到这里,
        location /api {
            rewrite /api/?(.*)$  /$1 break;  # $1 意为匹配正则中第一个位置参数,break意为终止匹配当前域下的rewrite指令
            proxy_pass http://127.0.0.1:8000;  # [文章详情](https://www.jianshu.com/p/b010c9302cd0)
        }

        # 路径匹配,当你的请求来自于 192.168.16.37/ 这样的url的时候,就进入以下的location路径匹配
        location / {
            root   /data/html;  # 定义网页根目录的,nginx目录下的html,可以自由更改
            index  index.html;  # 指定首页文件的名字的
        }

        #错误页面,当请求返回404错误码的时候,就给用户看到一个页面,这个404.html放在网页根目录下
        error_page  404  /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
posted @ 2020-08-09 11:28  Tank-Li  阅读(1010)  评论(0编辑  收藏  举报