美文网首页中间件
Nginx源码安装和yum安装

Nginx源码安装和yum安装

作者: 全栈小运维 | 来源:发表于2020-03-27 16:43 被阅读0次

源码包安装nginx

一.简介

说明

源码编译安装

环境

CentOS版本:CentOS 7
[nginx-server]
    主机名:nginx
    系统:centos-7.4
    地址:192.168.1.128
    软件:nginx-1.16.1

二.安装

1.安装依赖包

https://github.com/nginx

[root@nginx ~]# yum -y install gcc make pcre pcre-devel openssl openssl-devel zlib zlib-devel

解释:

gcc  编译器
make 用于编译文件
pcre 让nginx可以用正则表达式,rewrite模块,core模块
openssl 生成证书ssl模块
zlib gzip模块需要
2.下载源码包
[root@nginx ~]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
3.解压
[root@nginx ~]# tar -zxvf nginx-1.16.1.tar.gz
4.创建服务自己用户,不用root
root@nginx ~]# groupadd nginx
root@nginx ~]# useradd -g nginx -s /sbin/nologin nginx
5.编译
[root@nginx ~]# cd nginx-1.16.1 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre
[root@nginx ~]# make && make install

解释:

--user=nginx 指定运行nginx这个程序的用户
--group=nginx 指定运行nginx这个程序的组
--prefix=/usr/local/nginx 指定安装路径,防止分散
--with-http_ssl_module 支持https
--with-http_spdy_modul spdy https的快速访问
--with-http_stub_status_module nginx的信息查询
--with-pcre 地址重写
6.nginx.conf配置文件

Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main部分设置的指令将影响其它所有部分的设置;server部分的指令主要用于指定虚拟主机域名、IP和端口;upstream的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;location部分用于匹配网页位置(比如,根目录”/“,”/images”,等等)。他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。它有自己的特殊指令,不需要在其他地方的应用。

当前nginx支持的几个指令上下文:

6.1 通用
下面的nginx.conf简单的实现nginx在前端做反向代理服务器的例子,处理js、png等静态文件,jsp等动态请求转发到其它服务器tomcat:

user  www www;
worker_processes  4;
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
pid        logs/nginx.pid;
events {
    use epoll;
    worker_connections  65535;
}
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  65;
  # gzip压缩功能设置
    gzip on;
    gzip_min_length 1k;
    gzip_buffers    4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 6;
    gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;
  # http_proxy 设置
    client_max_body_size   10m;
    client_body_buffer_size   128k;
    proxy_connect_timeout   75;
    proxy_send_timeout   75;
    proxy_read_timeout   75;
    proxy_buffer_size   4k;
    proxy_buffers   4 32k;
    proxy_busy_buffers_size   64k;
    proxy_temp_file_write_size  64k;
    proxy_temp_path   /usr/local/nginx/proxy_temp 1 2;
  # 设定负载均衡后台服务器列表 
    upstream  backend  { 
              #ip_hash; 
              server   192.168.10.100:8080 max_fails=2 fail_timeout=30s ;  
              server   192.168.10.101:8080 max_fails=2 fail_timeout=30s ;  
    }
  # 很重要的虚拟主机配置
    server {
        listen       80;
        server_name  itoatest.example.com;
        root   /apps/oaapp;
        charset utf-8;
        access_log  logs/host.access.log  main;
        #对 / 所有做负载均衡+反向代理
        location / {
            root   /apps/oaapp;
            index  index.jsp index.html index.htm;
            proxy_pass        http://backend;  
            proxy_redirect off;
            # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
            proxy_set_header  Host  $host;
            proxy_set_header  X-Real-IP  $remote_addr;  
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        }
        #静态文件,nginx自己处理,不去backend请求tomcat
        location  ~* /download/ {  
            root /apps/oa/fs;  
        }
        location ~ .*/.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$   
        {   
            root /apps/oaapp;   
            expires      7d; 
        }
           location /nginx_status {
            stub_status on;
            access_log off;
            allow 192.168.10.0/24;
            deny all;
        }
        location ~ ^/(WEB-INF)/ {   
            deny all;   
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
  ## 其它虚拟主机,server 指令开始
}
7.检测配置文件的正确性
[root@nginx ~]# /usr/local/nginx/sbin/nginx -t

测试配置文件书写正常后,出现的测试结果:

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
8.查看nginx安装的版本号
[root@nginx ~]# /usr/local/nginx/sbin/nginx -v
[root@nginx ~]# /usr/local/nginx/sbin/nginx -V

解析:

1.  -v:  显示 nginx 的版本。
2.  -V:  显示 nginx 的版本,编译器版本和配置参数。

三.使用验证

1.启动校验
[root@nginx ~]# nginx -t

如果提示找不到命令not found,则创建软连接

[root@nginx ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
2.启动
[root@nginx ~]# nginx
3.重新读取配置文件
[root@nginx ~]# nginx -s reload
4.如下命令出现welcome nginx是正确的
[root@nginx ~]# curl -I http://127.0.0.1

到此源码部署nginx就结束了。

Yum安装

一.简介

说明

源码编译安装

环境

CentOS版本:CentOS 7
[nginx-server]
    主机名:nginx
    系统:centos-7.4
    地址:192.168.1.129
    软件:nginx-1.16.1

二.安装

1.安装基础软件包

[root@nginx ~]# yum -y install net-tools vim tree htop iftop gcc gcc-c++ glibc iotop lrzsz sl wget unzip nmap nc psmisc dos2unix bash-completion bash-completion-extra sysstat rsync nfs-utils httpd-tools

2.添加官方yum源

[root@nginx ~]# vim /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

3.安装nginx

[root@nginx ~]# yum -y install nginx

注释:
默认nginx的程序用户为nginx,可以根据自己需求修改。
4.启动效验

[root@nginx ~]# nginx -t

5.查看nginx安装的版本号

[root@nginx ~]# nginx -v
[root@nginx ~]# nginx -V

解析:
-v: 显示 nginx 的版本。
-V: 显示 nginx 的版本,编译器版本和配置参数。

三.使用验证

1.启动

[root@nginx ~]# nginx

2.如下命令出现welcome nginx是正确的

[root@nginx ~]# curl http://127.0.0.1

3.停止

[root@nginx ~]# nginx -s stop`

4.查看nginx启动情况,nginx监听80端口

[root@nginx ~]# netstat -lnpt | grep nginx

相关文章

网友评论

    本文标题:Nginx源码安装和yum安装

    本文链接:https://www.haomeiwen.com/subject/qhzluhtx.html