目录
一、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文件文章来源:https://www.toymoban.com/news/detail-719290.html
通过浏览器输入域名进行验证,如果出现错误,可以查看nginx的错误日志error.log,查找出错误,并且将其解决。文章来源地址https://www.toymoban.com/news/detail-719290.html
到了这里,关于使用nginx搭建http和https环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!