zoukankan      html  css  js  c++  java
  • Centos7-4下安装Nginx

    一、下载Nginx

    Nginx下载地址
    Nginx是C语言开发的,建议在Linux上运行。由于Nginx的一些模块依赖一些lib,所以在安装nginx之前需要安装如下依赖库

    yum install gcc-c++ 
    yum install pcre pcre-devel 
    yum install zlib zlib-devel 
    yum install openssl openssl--devel
    

    二、将下载好的Nginx通过ftp上传到Linux里面并解压

    tar -zxvf nginx-1.15.10.tar.gz
    

    三、编译Nginx

    cd nginx //进入Nginx目录
    

    接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装

     ./configure //$默认安装在/usr/local/nginx 
    make 
    make install
    

    四、安装成功,一些Nginx命令

    whereis nginx   //查看NGINX目录
    
    ./nginx   启动Nginx
    
    ./nginx -s reload  //重启Nginx并刷新配置
    
    
    ps -ef|grep nginx   //查看Nginx进程号
    kill -QUIT 2072   //杀死Nginx进程
    

    五、安装SSL证书

    五、安装SSL证书

     回到Nginx源码所在的位置,下载ssl模块

    yum -y install pcre  pcre-devel zlib  zlib-devel openssl openssl-devel
    

     从新编译

    //我之前默认安装的所以位置在/usr/local/nginx
    
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
    
    make 
    
    下面千万不要make install 会覆盖之前的Nginx的目录
    
    备份nginx启动程序并且复制新生成obj目录的nginx启动文件
    
     首先备份以前的启动程序
    cp /usr/local/nginx/sbin/nginx nginx.bak
    
    复制obj新生成的启动程序,覆盖到以前的nginx
     cp /yangk/nginx-1.17.0/objs/nginx  /usr/local/nginx/sbin/nginx
    

     SSL配置
      在conf下面创建ssl文件夹将下载的SSL里面的.pem和.key复制进去,然后配置就OK了

     server {
            listen       80;
            server_name  yangkui.top;
    
    	listen 443 ssl;
    	ssl_certificate      ssl/a.pem; 
            ssl_certificate_key  ssl/b.key; 
    	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;
    

    六、使用HTTPS访问的时候遇到的错误

    在页面的head中加入 ,意思是自动将http的不安全请求升级为https

    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
    
    

    七、强制http访问重定向为HTTPS

      基于上面的配置,如果直接访问https://www.a.com的时候,是没问题的,但是访问www.a.com的时候默认还是http访问。需要强制将http转换成https访问才行

    	if ($scheme = http ) {
    	return 301 https://$server_name$request_uri;
    	}
    
    
  • 相关阅读:
    linux系统sed命令输出匹配字符的行及其后若干行
    linux系统中统计每一行的字符数
    linux系统中sed复合命令
    [转载]J2EE程序员应该掌握的Linux系统的知识
    [转载]Linuz常用命令(1)
    [转载]J2EE程序员应该掌握的Linux系统的知识
    [转载]Linuz常用命令(1)
    [转载]Oracle常用函数大全
    [转载]Linuz常用命令(1)
    [转载]Linux常用命令(2)
  • 原文地址:https://www.cnblogs.com/yangk1996/p/12656656.html
Copyright © 2011-2022 走看看