linux下无网安装nginx以及所需依赖

  1. Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,安装顺序为我写的顺序:
    (1)SSL功能需要openssl库,下载地址:http://www.openssl.org/
    (2)gzip模块需要zlib库,下载地址:http://www.zlib.net/
    (3)rewrite模块需要pcre库,下载地址:http://www.pcre.org/
    (4)Nginx的安装包:下载地址为:http://nginx.org/en/download.html
    由于有些网址登录过程较慢,所以小编以及将nginx以及nginx的依赖全部下载完成,分享到百度云中,小编将在文章的末尾分享。
  2. 将下载完成的nginx包和nginx的依赖包上传到指定的主机上面

nginx依赖的环境安装包下载 nginx所需依赖_Nginx

  1. 安装nginx的依赖,按照如下顺序安装(如果在安装的过程中出现了权限的问题,需要更换到管理员的账号 例如:su root ,输入管理员的密码)
    (1)首先我们安装SSL功能需要的openssl库插件,注意:安装过程是按照我在linux下设置的文件路径来安装的,命令如下:
a.1   tar -zxvf  soft/openssl-1.1.1b.tar.gz

a.2 cd openssl-1.1.1b/

a.3 ./config

a.4 make

a.5 make install

(2)安装gzip模块需要zlib库的安装方法和openssl安装的方法一模一样,也是分为上面五个步骤,只不过是文件的名称不一样,命令简单如下:

b.1   tar -zxvf  soft/zlib-1.2.11.tar.gz

b.2 cd zlib-1.2.11/

b.3 ./configure

b.4 make

b.5 make install

(3)安装 rewrite模块需要pcre库的安装方法和openssl安装的方法一模一样,也是分为上面五个步骤,只不过是文件的名称不一样,命令简单如下:

c.1   tar -zxvf soft/pcre-8.42.tar.gz

c.2 cd pcre-8.42/

c.3 ./configure

c.4 make

c.5 make install

如果在执行./configure的出现错误了,导致不能继续往下执行,报错内容为:
error: You need a C++ compiler for C++ support,看到这句话我们就已经猜到了应该是c++包信息,而linux中没有,那么首先安装一下这个包信息即可,安装命令为:

yum install -y gcc gcc-c++
1
当安装完上面的c++包之后,在此运行,发现消息已经显示安装成功了,当基于上面的东西全部安装完成之后,就需要安装Nginx服务了。
4. 安装nginx
(1)安装nginx的命令如下所示:

d.1 tar -zxvf soft/nginx-1.15.12.tar.gz

d.2 cd nginx-1.15.12/

d.3 ./configure --with-pcre=../pcre-8.42/ --with-zlib=../zlib-1.2.11/ --with-openssl=../openssl-1.1.1b/ --prefix= /nginx_install/nginx

d.4 make

d.5 make install

注意是../ 转载里面是 ... 坑死我了。

注:–prefix是将nginx安装的哪个目录,如果没有指定,将安装到/usr/local/nginx中,如果指定的目录中没有nginx文件夹,需要自己创建一个文件夹。
5. 启动nginx
(1)进入到你刚才安装nginx的目录,进入后在进入sbin目录。此处需要换成你自己的目录。命令如下所示:

cd yournginx/sbin

(2)进入sbin目录后,使用如下命令启动:

 ./nginx

(3)启动可能出现的问题,如果你没有使用管理员用户进行启动,可能会报出权限异常的错误,因为非管理员用户是不能启动1024端口以下的端口号,错误信息如下所示:

nginx: the configuration file /home/work/local-qc/nginx/conf/nginx.conf syntax is ok
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
nginx: configuration file /home/work/local-qc/nginx/conf/nginx.conf test failed

./nginx -t
看到如下提示,表示安装成功。
nginx: the configuration file /opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf syntax is ok
nginx: configuration file /opt/ldkjdata/nginx/nginx-1.14.0/conf/nginx.conf test is successful

解决办法:

如果有管理员用户,可以使用管理员用户启动。
如果没有管理员用户,可以将nginx文件夹中的conf文件夹中的nginx.conf的配置文件的监听端口修改为1024以上的。
(4)启动完成后,访问主机地址以及对应的端口号,如果可以出现Welcome to Nginx!的提示,则表示启动成功。
特别注意:如果在安装过程中,出现了权限问题,需要修改成root用户在进行操作。
nginx的安装包以及对应的依赖如下所示:

Nginx启动和端口查看

cd /opt/ldkjdata/nginx/nginx-1.14.0/sbin
./nginx 启动
./nginx -s stop 停止
./nginx -s reload 修改配置后重新加载配置
netstat -ntlp 查看tcp是否正常监听

配置:

#运行用户
user www-data;  
#启动进程,通常设置成和cpu的数量相等
worker_processes 1;

#全局错误日志及PID文件
error_log /var/log/nginx/error.log;
pid    /var/run/nginx.pid;

#工作模式及连接数上限
events {
  use  epoll;       #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
  worker_connections 1024;#单个后台worker process进程的最大并发链接数
  # multi_accept on; 
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
   #设定mime类型,类型由mime.type文件定义
  include    /etc/nginx/mime.types;
  default_type application/octet-stream;
  #设定日志格式
  access_log  /var/log/nginx/access.log;

  #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
  #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
  sendfile    on;
  #tcp_nopush   on;

  #连接超时时间
  #keepalive_timeout 0;
  keepalive_timeout 65;
  tcp_nodelay    on;
  
  #开启gzip压缩
  gzip on;
  gzip_disable "MSIE [1-6]\.(?!.*SV1)";

  #设定请求缓冲
  client_header_buffer_size  1k;
  large_client_header_buffers 4 4k;

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;

  #设定负载均衡的服务器列表
   upstream mysvr {
  #weigth参数表示权值,权值越高被分配到的几率越大
  #本机上的Squid开启3128端口
  server 192.168.8.1:3128 weight=5;
  server 192.168.8.2:80 weight=1;
  server 192.168.8.3:80 weight=6;
  }


  server {
  #侦听80端口
    listen    80;
    #定义使用www.xx.com访问或者localhost
    server_name www.xx.com;

    #设定本虚拟主机的访问日志
    access_log logs/www.xx.com.access.log main;

  #默认请求
  location / {
     root  /root;   #定义服务器的默认网站根目录位置
     index index.php index.html index.htm;  #定义首页索引文件的名称

     fastcgi_pass www.xx.com;
     fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; 
     include /etc/nginx/fastcgi_params;
    }

  # 定义错误提示页面
  error_page  500 502 503 504 /50x.html; 
    location = /50x.html {
    root  /root;
  }

  #静态文件,nginx自己处理
  location ~ ^/(images|javascript|js|css|flash|media|static)/ {
    root /var/www/virtual/htdocs;
    #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
    expires 30d;
  }
  #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
  location ~ \.php$ {
    root /root;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;
    include fastcgi_params;
  }
  #设定查看Nginx状态的地址
  location /NginxStatus {
    stub_status      on;
    access_log       on;
    auth_basic       "NginxStatus";
    auth_basic_user_file conf/htpasswd;
  }
  #禁止访问 .htxxx 文件
  location ~ /\.ht {
    deny all;
  }
   
   }
}