【记录】Linux CentOS安装Nginx并使用https

430 阅读2分钟

安装编译时需要的环境gcc、make、wget,g++ 下载openssl主要用于ssl模块加密,支持htps

wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz

下载pcre来实现对地址重定向,地址重写功能和localtion指令以及正则表达式的支持

wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz

下载zlib gzip压缩模块

wget https://zlib.net/zlib-1.2.11.tar.gz

下载Nginx

wget http://nginx.org/download/nginx-1.16.1.tar.gz

使用tar 解压所有的文件

ls *.tar.gz | xargs -n1 tar xzvf  
编译选项

使用./configure设置各种Nginx参数的脚本,包括源和配置文件的路径,编译器选项,连接处理方法和模块列表。该脚本通过创建编译代码和安装Nginx开源所需的Makefile来完成。

参数描述
--prefix=Nginx安装目录,以及有其他配置脚本选项的路径设置的所有相对路径的基本位置。默认值/usr/local/nginx
--sbin-path=<PATHNginx二进制执行文件的名称,默认值:<prefix>/sbin/nginx
--conf-path=Nginx配置文件的名称。但是,您可以通过在nginx命令行上使用选项指定其他文件来始终在启动时覆盖此值。默认值:<prefix> conf / nginx.conf-c <FILENAME>
--pid-path=nginx.pid文件的名称,用于存储nginx主进程的进程ID 。安装后,可以使用Nginx配置文件中的pid指令更改文件名的路径。默认值:<prefix> /logs/nginx.pid
--error-log-path=error,warn和诊断数据的日志文件的名称。安装后,可以使用Nginx配置文件中的error_log指令更改文件名。默认值:<prefix> /logs/error.log
--http-log-path=HTTP服务器请求的主日志文件的名称。安装后,始终可以使用Nginx配置文件中的access_log指令更改文件名。默认值:<prefix> /logs/access.log
--user=Nginx运行进程的拥有者。安装后,可以使用Nginx配置文件中的user指令更改名称。默认:nobody
--group=namenginx运行进程的拥有者用户组。安装后,可以使用NGINX配置文件中的user指令更改名称。默认值:--user选项设置的值
--with-pcre=PCRE库源代码的路径,这是位置指令和Rewrite模块中正则表达式支持所必需的
--with-pcre-jit使用“即时编译”支持(pcre_jit指令)构建PCRE库
--with-zlib=zlib库的源代码路径,Gzip模块需要该路径
--with-http_ssl_modul启用HTTPS支持
--with-http_v2_module开启 HTTP/2请求支持

编译安装

./configure \
   --with-openssl=../openssl-1.0.2s \
   --with-pcre=../pcre-8.43 \
   --with-zlib=../zlib-1.2.11 \
   --with-pcre-jit --user=admin \
   --prefix=/home/admin/nginx \
   --with-http_ssl_module \
   --with-http_v2_module 
make
make install

到此nginx安装完成,下面为部署ssl 在nginx内新建文件夹cert

mkdir /home/admin/nginx/cert

将ssl中的.pem文件和.key文件放入cert内 修改配置文件

vim /home/admin/nginx/conf/nginx.conf

注释掉http上的所以内容 自己在最下方加入以下内容

http{
    server {
        listen       443 ssl;
        server_name  域名;

        ssl_certificate      /home/admin/nginx/cert/文件名.pem;
        ssl_certificate_key  /home/admin/nginx/cert/文件名.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }
    server{
        listen    80;
        server_name 域名;
        return 301 https://域名;
    }
}

参考:juejin.cn/post/684490…