使用nginx搭建http和https环境

文章介绍了Nginx作为开源web服务器和反向代理的角色,解释了负载均衡和反向代理的概念,并详细展示了如何安装和配置Nginx,包括设置HTTP和HTTPS环境,以及检查和运行配置。此外,还讨论了搭建HTTP和HTTPS环境的重要性。
摘要由CSDN通过智能技术生成

目录

一、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,查找出错误,并且将其解决。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值