zoukankan      html  css  js  c++  java
  • linux 安装 nginx

    安装编译工具及库文件

    以便后续对nginx和相关工具进行编译

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel 

    zlib与zlib-devel:具体zlib-devel是什么东西,我在网上找到了这样一段话:“devel包含普通包,只比普通包多了头文件。动态链接库的话两种包都有。编译的时候如果需要用到这个库,那么需要安装这个库的devel,因为需要头文件

    我个人的理解是,有些程序,需要依赖一些第三方的东西才能使用,应用到我们当前的场景,就是,nginx安装时有些东西需要用到zlib-devel库,所以,我们要先安装zlib-devel,但是,zlib-devel依赖于zlib所以我们要先安装zlib

    gcc-c++: 是一个编译器,大致分为两部分,一部分用来处理编译各种代码,将代码转为c代码,另一部分将得到的c代码进行编译转成电脑硬件相关的汇编或机器码等(类似于Java的一次编译处处运行)

    libtool: 是一个通用库支持脚本(/usr/bin/libtool),将使用动态库的复杂性隐藏在统一、可移植的接口中。

    openssl与openssl-devel:是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份

     

    安装pcre:

    官网下载链接: http://downloads.sourceforge.net/project/pcre/pcre

    是一个Perl库,包括 perl 兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的

    cd /usr/local/src
    wget http://downloads.sourceforge.net/project/pcre/pcre/8.43/pcre-8.43.tar.gz
    

     解压pcre包:

    tar -zxvf /usr/local/src/pcre-8.43.tar.gz

    进入安装包,编译安装

    cd /usr/local/src/pcre-8.43
    ./configure
    make && make install
    

    查看pcre版本:

    pcre-config --version
    

      

    安装nginx

     官网下载nginx:http://nginx.org/download

     在/usr/local中创建nginx目录,并进入其中下载nginx包

    cd /usr/local
    mkdir nginx
    cd nginx 
    wget http://nginx.org/download/nginx-1.9.9.tar.gz
    

     解压安装包,得到nginx-1.9.9目录

    tar -zxvf /usr/local/nginx/nginx-1.9.9.tar.gz
    

     进入nginx-1.9.9目录,并使用之前安装的程序包编译(注意:命令路径必须和安装的pcre的存放路径版本一致

    ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.43
    make
    make install
    

     安装成功,查看nginx版本:

    /usr/local/webserver/nginx/sbin/nginx -v
    

     

    最后简单的示例一下nginx的配置,找到nginx.conf文件(一般都在nginx安装目录下的conf目录中),我的文件路径为:/usr/local/nginx/nginx-1.9.9/conf/nginx.conf 所以命令如下:

    vim /usr/local/webserver/nginx/conf/nginx.conf
    

     详细的nginx配置,参考链接:https://www.cnblogs.com/fuhui-study-footprint/p/12979513.html

    下面验证nginx.conf文件是否正确:

     /usr/local/webserver/nginx/sbin/nginx -t
    

     如下则表示文件正确:

     最后启动、关闭、重新载入配置文件、重启nginx命令:

    /usr/local/webserver/nginx/sbin/nginx                        # 启动nginx
    /usr/local/webserver/nginx/sbin/nginx -s reload              # 重新载入配置文件
    /usr/local/webserver/nginx/sbin/nginx -s reopen              # 重启 Nginx
    /usr/local/webserver/nginx/sbin/nginx -s stop                # 停止 Nginx        
    

     查看nginx是否在运行状态:

    ps -ef | grep nginx
    

     请求服务器,可以直接请求域名,或端口:

     

    配置tomcat代理:

    监听端口,配置端口代理请求的路径

    worker_processes 1; #可以设置和服务器核数相同的数

    events {
    worker_connections 1024;
    }

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

    sendfile on;
    keepalive_timeout 65;

    server {
    listen 80;
    server_name localhost;

    #charset koi8-r;

    location = / {
    root html;
    index index.html index.htm;
    #proxy_pass http://127.0.0.1:8080;
    proxy_pass http://127.0.0.1:8080/web/index.html;
    }

    # 访问static中的文件,因为有时候前端访问static文件中的时候是不加项目名,但是在服务器上,我们需要知道项目的路径所以要加上tomcat的路径
    location ^~ /static/ {
    root /webroot/static/;
    proxy_pass http://127.0.0.1:8080/RoomHomeWeb/static/;
    }

    #静态文件配置。此处已后缀名方式匹配静态文件,但是无法添加路径,否则会报错
    location ~ .(gif|jpg|png|js|css)$ 
    {
    proxy_pass http://127.0.0.1:8080;
    }

    # 下载页
    location ~ .html$ {
    proxy_pass http://127.0.0.1:8080;
    }

    # 下载页静态文件
    location ^~ /assets/ {
    proxy_pass http://127.0.0.1:8080/assets/;
    }

    # 下载页
    location ~ .apk$ {
    proxy_pass http://127.0.0.1:8080;
    }

    #admin
    location /admin/ {
    proxy_pass http://127.0.0.1:8080;
    }

    #adminchild
    location /stores/ {
    proxy_pass http://127.0.0.1:8080;
    }

    # 编辑管理
    location /editor/ {
    proxy_pass http://127.0.0.1:8080;
    }

    # 客服管理
    location /customer/ {
    proxy_pass http://127.0.0.1:8080;
    }

    #api
    location /api/ {
    proxy_pass http://127.0.0.1:9094;
    }

    location = /50x.html {
    root html;
    }

    }

    server {
    listen 443;
    server_name www.hzyit.cn;

    underscores_in_headers on;#https请求默认会拦截header中的内容,需要配置underscores_in_headers进行处理

    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate /home/cert/4643252_www.hzyit.cn.pem; #ssl证书
    ssl_certificate_key /home/cert/4643252_www.hzyit.cn.key; #ssl证书秘钥
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
    proxy_pass http://127.0.0.1:9098; #https域名对应的tomcat
    index index.html index.htm;
    client_max_body_size 1000M;
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    proxy_buffer_size 32k;
    proxy_buffers 32 256k;
    proxy_busy_buffers_size 512k;
    proxy_temp_file_write_size 512k;
    }
    }

    }

    如果配置无效

    1、检查文件下方是否包含includ 引用了其他文件被,其他文件覆盖
    2、检查路径是否正确,端口是否开放,配置是否正确

    3、使用 /usr/local/webserver/nginx/sbin/nginx -t 命令,查看你修改的文件是否和 该命令返回的路径一样,如果不一样,修改该命令返回路径的nginx.conf文件

  • 相关阅读:
    WebStorm 使用过程中出现的一些问题以及解决方案
    常用软件工具收集
    个人博客运营策略总结
    OpenGL glMatrixMode() 函数解释与例子
    让搭建在 Github Pages 上的 Hexo 博客可以被 Google 搜索到
    使用 statcounter 统计 Hexo 博客访问量
    使用 Hexo,Material Theme 以及 Github Pages 搭建个人博客
    Ubuntu 16.04下配置 Nginx 与 Node.js 以及服务的部署
    一个简单的在线代码编辑器的实现
    在已有 Windows10 系统的基础上,安装 Ubuntu17.10 系统(新版 BIOS)
  • 原文地址:https://www.cnblogs.com/fuhui-study-footprint/p/11982582.html
Copyright © 2011-2022 走看看