Linux下安装nginx 并且配置https域名

CentOS7下Nginx安装配置
本文介绍如何在CentOS7.1环境中安装Nginx 1.8.0,并配置SSL证书实现HTTPS代理。包括安装所需依赖库、配置Nginx参数及常见问题解决方案。

前提条件:centos 7.1,掌握Liunx基本指令

Nginx包下载地址:

http://nginx.org/download/nginx-1.8.0.tar.gz

Nginx依赖包下载地址:

1.gzip模块需要zlib库(在http://www.zlib.net/下载http://zlib.net/zlib-1.2.8.tar.gz)

2.rewrite模块需要pcre库(在http://www.pcre.org/下载ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/)

3.ssl功能需要openssl库(在http://www.openssl.org/下载http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz)

 
 2.2Nginx安装
   安装前确认linux下这些库已经安装

yum install perl 
yum install gcc
yum install gcc-c++
yum -y install net-tools

   将安装包放到/home/zwr/nginx_install目录下,
  然后再该目录下运行此脚本 注意自己下的版本的问题,如果和我的不一致就照着换名字,名字换好了下面这一大段脚本就直接贴上去运行就OK
#1.安装openssl-fips-2.0.9.tar.gz  
cd /home/zwr/nginx_install  
#解压安装文件  
tar -zxvf openssl-fips-2.0.9.tar.gz  
cd openssl-fips-2.0.9  
#prefix配置安装路径  
./config --prefix=/opt/openssl-fips-2.0.9  
make  
make install  
#2.安装zlib-1.2.8.tar.gz  
cd /home/zwr/nginx_install  
#解压安装文件  
tar -zxvf zlib-1.2.8.tar.gz  
cd zlib-1.2.8  
#prefix配置安装路径  
./configure --prefix=/opt/zlib-1.2.8  
make  
make install  
#3.安装pcre-8.37.tar.gz  
cd /home/zwr/nginx_install  
#解压安装文件  
tar -zxvf pcre-8.37.tar.gz  
cd pcre-8.37  
#prefix配置安装路径  
./configure --prefix=/opt/pcre-8.37  
make  
make install  
#4.安装nginx-1.8.0.tar.gz  
cd /home/zwr/nginx_install  
#解压安装文件  
tar -zxvf nginx-1.8.0.tar.gz  
cd nginx-1.8.0  
#with-pcre指定依赖包位置,prefix配置安装路径  
./configure --with-pcre=../pcre-8.37 --with-zlib=../zlib-1.2.8 --with-openssl=../openssl-fips-2.0.9 --prefix=/opt/nginx-1.8.0  
make  
make install  
#5.至此Nginx的安装完成!  
#检测是否安装成功  
cd  /opt/nginx-1.8.0/sbin  
./nginx -t  
#6.启动nginx  
cd  /opt/nginx-1.8.0/sbin  
./nginx  
#7.查看端口  
netstat -ntlp

贴到这里为止

期间你可能会出现各种bug,比如端口占用,权限不够,ssl配置不生效啊,自己网上翻,都有都有
nginx.conf配置
http {
    include mime.types;
    default_type application/octet-stream;
    include /usr/local/nginx/conf/reverse-proxy.conf;
    sendfile on;
    keepalive_timeout 65;
    gzip on;
    client_max_body_size 50m; #缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存到本地再传给用户
    client_body_buffer_size 256k;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    proxy_connect_timeout 300s; #nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_read_timeout 300s; #连接成功后,后端服务器响应时间(代理接收超时)
    proxy_send_timeout 300s;
    proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
    proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
    proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘
    proxy_ignore_client_abort on; #不允许代理端主动关闭连接
    server {
        listen 80;
        server_name localhost;
        location / {
            root html;
            index index.html index.htm;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }
}
配置上文incloud的 usr/local/nginx/conf/reverse-proxy.conf 文件
server {
    listen 443;
    server_name test.niubisb.cn; # 你的域名
    ssl on;
   
    index index.html index.htm;# 上面配置的文件夹里面的index.html
    ssl_certificate  cert/1991970_test.niubisb.cn.pem;# 改成你的证书的名字,证书自己去下
    ssl_certificate_key cert/1991970_test.niubisb.cn.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;
    location / {
         proxy_pass   https://ip地址:8080;  #所需要代理的地址
    }

  运行,代理https域名成功

<think>首先,用户的问题是:“我想查找如何安装Nginx配置HTTPS的教程或指南请问如何在服务器上安装nginx配置https证书”。这很直接:用户想了解如何在服务器上安装Nginx配置HTTPS证书。现在,回顾系统级指令:-所有行内数学表达式必须使用$...$格式,但在这个上下文中,用户的问题是关于NginxHTTPS的,不涉及数学表达式。所以,我应该避免不必要的数学内容。-独立公式必须使用$$...$$格式并单独成段,但同样,不相关。-LaTeX语法正确:既然没有数学,这应该不是问题。-使用中文回答:我的响应必须完全用中文。-生成相关问题:在响应末尾,我需要添加相关问题。-回答中引用的段落末尾自然地添加引用标识:例如[^1]。我有几个引用(引用[1]到[^5]),我需要自然地整合它们。引用是关于Nginx安装HTTPS配置的,所以我应该引用这些来源来支持我的回答。用户可见层的指令:-回答结构清晰,帮助用户逐步解决问题:我需要提供一个结构化的指南。-保证回答真实可靠:基于提供的引用,我应该使用这些信息来构建准确的响应。参考引用:-引用[1]:提到了nginx配置https证书,并链接到一个博客文章。-引用[2]:详细说明了下载证书和配置nginx.conf文件。-引用[3]:指出nginx默认没有安装ssl模块。-引用[4]:描述了在CentOS下生成证书和配置nginx。-引用[5]:关于在CentOS7.6安装Nginxwithhttp_ssl_module。用户的问题集中在安装Nginx配置HTTPS证书,所以我需要涵盖:1.安装Nginx(可能包括编译时添加SSL模块)。2.获取HTTPS证书(例如,自签名或从CA)。3.配置Nginx以使用证书。结构清晰的回答:-逐步指南:分步骤解释。-使用引用:自然地整合引用。-添加相关问题:在末尾生成相关问题。大纲我的响应:1.**引言**:简要介绍主题。2.**步骤1:安装Nginx**:-提到如果SSL模块未启用,需要编译时添加。-引用[3]和[^5]支持。3.**步骤2:获取HTTPS证书**:-讨论自签名证书或从CA获取。-引用[4]和[^2]支持。4.**步骤3:配置Nginx**:-编辑nginx.conf文件。-示例配置。-引用[2]和[^4]支持。5.**验证和重启**:如何测试和重载配置。6.**相关问题**:生成几个相关问题。确保中文:整个响应用中文。生成相关问题:-基于主题,如:1.如何为Nginx配置HTTP/2?2.如何优化NginxHTTPS性能?3.常见的HTTPS配置错误有哪些?整合引用:-在相关段落末尾添加[^1],[^2]等。例如:-"安装Nginx时,需要确保SSL模块被启用[^3]。"-"配置证书时,指定正确的路径[^2]。"最终响应结构:-回答部分:清晰、逐步。-相关问题部分:以"§§相关问题§§"开头,列出问题。</think>### 如何在服务器上安装Nginx配置HTTPS证书 安装Nginx配置HTTPS证书是确保网站安全传输的关键步骤。以下是一个结构清晰、逐步的指南,基于真实可靠的实践。整个过程包括安装Nginx(确保支持SSL模块)、获取HTTPS证书(自签名或从CA获取)和配置Nginx。以CentOS系统为例,其他Linux发行版类似。 #### 步骤1: 安装Nginx并启用SSL模块 首先,确保服务器上安装了必要的工具(如gcc、make)。Nginx默认不包含SSL模块,需要编译时手动添加。 1. **下载并编译Nginx**: - 安装依赖库: ```bash sudo yum install -y gcc make openssl-devel pcre-devel zlib-devel ``` - 下载Nginx源码(从官网选择最新版本): ```bash wget https://nginx.org/download/nginx-1.20.0.tar.gz tar -zxvf nginx-1.20.0.tar.gz cd nginx-1.20.0 ``` - 编译时添加`--with-http_ssl_module`参数以启用SSL: ```bash ./configure --with-http_ssl_module --prefix=/usr/local/nginx make sudo make install ``` - 验证安装:运行`/usr/local/nginx/sbin/nginx -V`,输出中应包含`with-http_ssl_module`。如果未显示,需重新编译[^3][^5]。 2. **启动Nginx**: ```bash sudo /usr/local/nginx/sbin/nginx ``` - 检查状态:访问服务器IP地址(如`http://your_server_ip`),应看到Nginx欢迎页面。 #### 步骤2: 获取HTTPS证书 HTTPS证书可以是自签名(测试用)或从CA(如Let's Encrypt)获取。这里以自签名证书为例(生产环境建议使用免费CA证书)。 1. **生成自签名证书**: - 创建证书目录: ```bash sudo mkdir /etc/nginx/ssl cd /etc/nginx/ssl ``` - 生成私钥和证书请求: ```bash sudo openssl genrsa -out server.key 2048 sudo openssl req -new -key server.key -out server.csr ``` - 填写域名信息(如`Common Name`设为你的域名)。 - 生成证书: ```bash sudo openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt ``` - 这将生成`server.crt`(证书)和`server.key`(私钥),有效期10年[^4]。 2. **或使用CA证书**: - 从CA(如Let's Encrypt)获取证书,通常包括`domain.crt`和`domain.key`文件。 - 上传到服务器(如`/etc/nginx/ssl/`目录)。 #### 步骤3: 配置Nginx使用HTTPS 编辑Nginx配置文件,添加HTTPS服务器块。确保路径匹配证书文件。 1. **编辑配置文件**: - 打开`/usr/local/nginx/conf/nginx.conf`: ```bash sudo vi /usr/local/nginx/conf/nginx.conf ``` - 在`http`块内添加或修改`server`块: ```nginx server { listen 443 ssl; # 监听443端口(HTTPS) server_name your_domain.com; # 替换为你的域名 ssl_certificate /etc/nginx/ssl/server.crt; # 证书路径 ssl_certificate_key /etc/nginx/ssl/server.key; # 私钥路径 # SSL优化参数 ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; # 推荐使用较新协议 ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:80; # 转发到HTTP后端(可选) # 或直接服务静态文件:root /usr/local/nginx/html; } } # 可选:重定向HTTP到HTTPS server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; } ``` - 关键点:`ssl_certificate`和`ssl_certificate_key`必须指向实际文件路径,否则HTTPS会失败[^2][^4]。 2. **测试并重载配置**: - 检查配置语法: ```bash sudo /usr/local/nginx/sbin/nginx -t ``` - 如果显示"syntax is ok",继续下一步。 - 重载Nginx: ```bash sudo /usr/local/nginx/sbin/nginx -s reload ``` #### 验证HTTPS配置 - 访问`https://your_domain.com`(用实际域名替换)。浏览器可能显示安全警告(自签名证书),但URL栏应有锁图标表示HTTPS生效。 - 效果:HTTP自动重定向到HTTPS,显示为安全链接[^2]。 #### 注意事项 - **安全性**:生产环境使用免费CA证书(如Certbot工具),避免自签名证书的警告。 - **常见问题**: - 证书路径错误:确保`ssl_certificate`路径正确,权限为可读(`chmod 400`)。 - 端口冲突:检查防火墙是否开放443端口(`sudo firewall-cmd --add-port=443/tcp --permanent`)。 - 参考完整教程:更多细节可查看[Nginx安装指南](https://blog.youkuaiyun.com/weixin_42770320/article/details/139756281)[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值