使用nginx搭建http和https环境

这篇具有很好参考价值的文章主要介绍了使用nginx搭建http和https环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、nginx

1.1什么是负载均衡

1.2什么是反向代理

二、安装nginx,并对nginx进行基础配置

三、为什么搭建http和https环境

四、配置http和https环境

五、配置成功后对nginx进行检查和运行

六、测试


一、nginx

Nginx is an open-source web server software that can also be used as a reverse proxy, load balancer, and HTTP cache. It was first released in 2004 and has since gained popularity due to its high performance, scalability, and ease of use. Nginx is commonly used to serve static content, such as images and videos, as well as dynamic content generated by applications such as PHP and Python. It also supports SSL/TLS encryption, IPv6, and HTTP/2. Nginx is used by many popular websites, including Airbnb, Dropbox, Netflix, and WordPress.com.

Nginx是一个开源的web服务器软件,也可以用作反向代理、负载均衡器和HTTP缓存。它于2004年首次发布,并因其高性能、可伸缩性和易用性而广受欢迎。Nginx通常用于提供静态内容,如图像和视频,以及由PHP和Python等应用程序生成的动态内容。支持SSL/TLS加密,支持IPv6,支持HTTP/2。Nginx被许多流行网站使用,包括Airbnb, Dropbox, Netflix和WordPress.com。

1.1什么是负载均衡

负载均衡是一种用于分发网络流量的技术,它将网络流量分发到多个服务器或计算机集群中,以达到提高系统性能、可用性、可扩展性等目的。负载均衡通常由一个独立的设备或软件来实现,称为负载均衡器。负载均衡器会根据预设的算法和策略,将到达的请求分发到不同的服务器上,从而避免服务器过载,提高系统的性能和可用性。负载均衡可以应用于各种不同的场景,如Web服务器、数据库服务器、应用服务器等。它可以帮助系统在高流量和高负荷的情况下保持稳定运行,并且可以根据需要动态扩展和缩减服务器集群。常用的负载均衡算法包括轮询、加权轮询、随机、加权随机、最少连接等。负载均衡技术是现代分布式计算和云计算中必不可少的一部分。

1.2什么是反向代理

反向代理(Reverse Proxy)是一种网络技术,它位于服务器和客户端之间,将客户端的请求转发到后端服务器,并将后端服务器的响应返回给客户端。与正向代理不同,反向代理不是代表客户端访问远程服务器,而是代表服务器响应客户端的请求。反向代理通常用于隐藏真实的服务器地址,保护服务器免受恶意攻击,以及提高系统的性能和可靠性。反向代理还可以实现负载均衡、缓存、安全过滤等功能。反向代理服务器通常位于内部网络的边缘,与外部网络相连,客户端通过访问反向代理服务器来访问内部网络中的应用程序和服务。常见的反向代理服务器软件包括Nginx、Apache、HAProxy等。反向代理技术被广泛应用于Web服务器、应用服务器、数据库服务器、视频流媒体服务器等领域。

二、安装nginx,并对nginx进行基础配置

完整版一键安装配置nginx脚本
[root@mysql nginx]# cat onekey_install_henshan_nginx.sh 
#!/bin/bash

#新建一个文件夹用来存放下载的nginx源码包
mkdir -p  /nginx
cd /nginx

#新建工具人用户、设置无法登录模式
useradd  -s /sbin/nologin  clay

#下载nginx
#wget  http://nginx.org/download/nginx-1.23.2.tar.gz
curl -O http://nginx.org/download/nginx-1.23.2.tar.gz

#解压nginx源码包
tar xf nginx-1.23.2.tar.gz

#解决软件依赖关系、需要安装的软件包
yum install epel-release -y
yum install gcc gcc-c++ openssl openssl-devel  pcre pcre-devel  automake  make  psmisc  net-tools lsof vim geoip  geoip-devel wget  zlib zlib-devel -y  

#到达nginx配置文件目录下
cd nginx-1.23.2

#编译前的配置
./configure  --prefix=/usr/local/scnginx66  --user=clay  --with-http_ssl_module --with-http_v2_module --with-stream --with-http_stub_status_module --with-threads 

#编译、开启一个进程同时编译
make -j 1

#编译安装
make install

#启动nginx
/usr/local/scnginx66/sbin/nginx

#永久修改PATH变量
PATH=$PATH:/usr/local/scnginx66/sbin
echo "PATH=$PATH:/usr/local/scnginx66/sbin"  >>/root/.bashrc

#设置nginx的开机启动--手动添加
#在/etc/rc.local中添加启动命令
#/usr/local/scnginx66/sbin/nginx
echo "/usr/local/scnginx66/sbin/nginx"  >>/etc/rc.local

#给文件可执行权限
chmod +x /etc/rc.d/rc.local

#selinux和firewalld防火墙都需要关闭
service firewalld stop
systemctl disable firewalld

#临时关闭selinux
setenforce 0

#永久关闭selinux (需要开机重启)
#vim /etc/selinx/config 
sed -i '/^SELINUX=/ s/enforcing/disabled/'  /etc/selinux/config

三、为什么搭建http和https环境

(30条消息) HTTP协议和HTTPS协议_Claylpf的博客-CSDN博客

四、配置http和https环境

对nginx的配置文件nginx.conf进行配置(其中包括了nginx的一些基本模块的使用,如限制传输速度模块,限制连接数量模块,强制跳转https协议模块,info基本信息展示模块,和https服务页面模块)

[root@nfs conf]# cat nginx.conf
#user  nobody;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  2048;
}


#HTTP协议的配置
http {
    include       mime.types;
    default_type  application/octet-stream;
    #(定义访问日志的格式  日志保存在/usr/local/scnginx/logs/access.log文件中)
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
            
    access_log  logs/access.log  main;   #--》日志保存的地址 
            
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;      #--》65秒后用户和web服务器建立的连接就会断开、 保持连接65秒的时间、 连接的超时时间
 
    #gzip  on; 
    
    limit_conn_zone $binary_remote_addr  zone=addr:10m;    #创建一个连接区域(开辟了一个名叫addr的内存空间、像一个字典)
    limit_req_zone $binary_remote_addr  zone=one:10m rate=1r/s;    #创建一个连接区域(开辟了一个名叫one的内存空间、像一个字典)、每一秒产生1个可以访问的请求
    
    server {
        listen       80;
        server_name  www.claylpf.xyz;           #目的是直接从http协议跳转到https协议去
        return       301        https://www.claylpf.xyz;  #永久重定向
    }
 
    server {
        listen       80;
        server_name  www.feng.com;      #可以自己定义域名
 
        access_log  logs/feng.com.access.log  main;
 
        limit_rate_after 100k;  #下载速度达到100k每秒的时候、进行限制   
        limit_rate 10k;         #限制每秒10k的速度
 
        limit_req zone=one burst=5;  #同一时间同一ip最多5人同时访问 峰值是5 每一秒通过one的设定、产生一个空位 1r/s  
 
        location / {
            root   html/feng;
            index  index.html index.html;
        }
 
        error_page  404              /404.html;   #无法找到
 
        error_page   500 502 503 504  /50x.html;  #一般是nginx内部出现问题才会出现的提示
        location = /50x.html {
            root   html;
        }
 
        location = /info {
        stub_status;    #返回你的nginx的状态统计信息    
        #access_log off; #在访问的时候不计入访问日志里面去     
        auth_basic      "sanchuang website";
        auth_basic_user_file htpasswd;
        #allow  172.20.10.2;    #允许172.20.10.2的ip地址访问
        #deny   all;            #拒绝所有用户访问
        }
 
        
 
    }
    # HTTPS server 
    server {
        listen       443 ssl;
        server_name  www.claylpf.xyz;     #证书上对应的域名
 
        ssl_certificate      9581058_claylpf.xyz.pem;   #自己在阿里云上申请的免费的CA证书
        ssl_certificate_key  9581058_claylpf.xyz.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.html;
        }
    }
}
[root@nfs conf]# 


解决http协议 跳转到 https协议
    在http协议的server中
    添加:
    server {
        listen       80;
        server_name  www.claylpf.xyz;
        return       301      https://www.claylpf.xyz;   #--> 永久重定向   
    }

状态码为 301 转换访问

五、配置成功后对nginx进行检查和运行

nginx -t  可以用来检查nginx的配置文件

最后启动nginx

方法一:之间在shell里(命令行) 输入  nginx (因为我在配置文件里配置了PATH,可以直接输入)

方法二:进入

[root@mysql keepalived]#  cd /usr/local/scnginx66/sbin/
[root@mysql sbin]# ls
nginx
[root@mysql sbin]# 

让后使用 ./nginx 可以运行nginx啦

如需修改 还可以使用 ./nginx -s reload 进行刷新配置哦

ps aux|grep nginx 可以查看是否产生了nginx对应的进程

六、测试

最后配置windows的hosts,使windows上的浏览器在访问这些域名的时候能够完成IP地址的解析
目录:C:\Windows\System32\drivers\etc 里的hosts文件

通过浏览器输入域名进行验证,如果出现错误,可以查看nginx的错误日志error.log,查找出错误,并且将其解决。文章来源地址https://www.toymoban.com/news/detail-719290.html

到了这里,关于使用nginx搭建http和https环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在Windows 环境下使用 Nginx 搭建 HTTP文件服务器 实现文件下载 全步骤(详细)

    “Nginx 是一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的 反向代理 和 负载均衡 。 它是由俄罗斯人 伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发的,并于2004年首次公开发布的。 Nginx 是什么,

    2024年02月03日
    浏览(71)
  • nginx配置http强制跳转https

    一、什么是Nginx? Nginx是一个高性能的HTTP和反向代理Web服务器,同时也提供IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3/SMTP)代理服务器。Nginx的特点是:占有内存少,并发能力强。 Nginx专门为性能优化而开发,性能是最重要的考量,非常

    2024年02月16日
    浏览(55)
  • 【nginx】配置将HTTPS请求转换成HTTP

    要将HTTPS请求转换为HTTP请求,可以在Nginx的配置文件中添加以下配置: 打开Nginx的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf 。 在 server 块中添加以下配置,将HTTPS请求转发到后端的HTTP服务: 将 yourdomain.com 替换为你的域名, /path/to/your/ssl_certificate.crt 和

    2024年02月10日
    浏览(51)
  • nginx配置http请求转成https请求

    1、return 301 2、rewitre 3、error_page 原理: http和https是tcp的上层协议,当nginx服务器建立tcp连接后,根据收到的第一份数据来确定客户端是希望建立tls还是http。nginx会判断tcp请求的首写节内容以进行区分,如果是0x80或者0x16就可能是ssl或者tls,然后尝试https握手。如果端口开启了

    2024年02月07日
    浏览(46)
  • Nginx同时支持Http和Https的配置详解

    当配置Nginx同时支持HTTP和HTTPS时,需要进行以下步骤: 获得SSL证书:从可信任的证书颁发机构(CA)或使用自签名证书创建SSL证书。 将证书和私钥保存到服务器:将SSL证书和私钥文件保存到指定的位置,通常是 /etc/nginx/ssl/ 目录。 配置HTTP服务: 打开 Nginx 配置文件: 通常是

    2024年02月02日
    浏览(51)
  • Nginx配置springboot+vue项目http跳转https

    java生成证书 添加依赖 复制keystore到springboot资源目录,修改application.yml配置  启动项目 nginx配置 开启ssl     重启nginx -s reload 访问localhost:81将跳转到https://localhost/login?redirect=/index  

    2024年02月12日
    浏览(51)
  • nginx 同一个端口支持http和https配置

    原理:使用nginx的stream、 stream_ssl_preread模块 1.编译nginx 由于stream和stream_ssl_preread模块非默认引入,需要在编译安装nginx时引入;编译时添加配置参数 --with-stream --with-stream_ssl_preread_module ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-stre

    2024年02月10日
    浏览(57)
  • Nginx配置同时支持http和https两种方式访问

    http: https: Nginx的ssl模块安装 进入到目录的sbin目录下,输入 如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过,直接进行第五步)。 一般情况下都是不存在ssl模块的,接下来进入到你的解压缩后的nginx目录,注意这里不是nginx安装目录,是解压缩后

    2024年02月13日
    浏览(51)
  • windows环境, nginx https配置

    在 Windows 环境下配置 Nginx 的 HTTPS,需要以下步骤: 1. 安装 OpenSSL 首先需要安装 OpenSSL,可以从官网下载 Windows 版本的 OpenSSL,然后解压到某个目录下,比如 `C:OpenSSL-Win64`。 2. 生成 SSL 证书和私钥 使用 OpenSSL 生成 SSL 证书和私钥,可以使用以下命令: ``` cd C:OpenSSL-Win64bin ope

    2024年02月12日
    浏览(42)
  • linux环境, nginx https配置

    在 Linux 环境下,配置 Nginx 的 HTTPS 需要以下步骤: 1. 安装 OpenSSL ``` sudo apt-get install openssl ``` 2. 生成 SSL 证书和私钥 ``` sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt ``` 这里生成了一个有效期为 365 天的自签名证书,私钥存储在 `/

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包