目錄
一、nginx
1.1什么是負(fù)載均衡
1.2什么是反向代理
二、安裝nginx,并對(duì)nginx進(jìn)行基礎(chǔ)配置
三、為什么搭建http和https環(huán)境
四、配置http和https環(huán)境
五、配置成功后對(duì)nginx進(jìn)行檢查和運(yùn)行
六、測(cè)試
一、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是一個(gè)開(kāi)源的web服務(wù)器軟件,也可以用作反向代理、負(fù)載均衡器和HTTP緩存。它于2004年首次發(fā)布,并因其高性能、可伸縮性和易用性而廣受歡迎。Nginx通常用于提供靜態(tài)內(nèi)容,如圖像和視頻,以及由PHP和Python等應(yīng)用程序生成的動(dòng)態(tài)內(nèi)容。支持SSL/TLS加密,支持IPv6,支持HTTP/2。Nginx被許多流行網(wǎng)站使用,包括Airbnb, Dropbox, Netflix和WordPress.com。
1.1什么是負(fù)載均衡
負(fù)載均衡是一種用于分發(fā)網(wǎng)絡(luò)流量的技術(shù),它將網(wǎng)絡(luò)流量分發(fā)到多個(gè)服務(wù)器或計(jì)算機(jī)集群中,以達(dá)到提高系統(tǒng)性能、可用性、可擴(kuò)展性等目的。負(fù)載均衡通常由一個(gè)獨(dú)立的設(shè)備或軟件來(lái)實(shí)現(xiàn),稱為負(fù)載均衡器。負(fù)載均衡器會(huì)根據(jù)預(yù)設(shè)的算法和策略,將到達(dá)的請(qǐng)求分發(fā)到不同的服務(wù)器上,從而避免服務(wù)器過(guò)載,提高系統(tǒng)的性能和可用性。負(fù)載均衡可以應(yīng)用于各種不同的場(chǎng)景,如Web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、應(yīng)用服務(wù)器等。它可以幫助系統(tǒng)在高流量和高負(fù)荷的情況下保持穩(wěn)定運(yùn)行,并且可以根據(jù)需要?jiǎng)討B(tài)擴(kuò)展和縮減服務(wù)器集群。常用的負(fù)載均衡算法包括輪詢、加權(quán)輪詢、隨機(jī)、加權(quán)隨機(jī)、最少連接等。負(fù)載均衡技術(shù)是現(xiàn)代分布式計(jì)算和云計(jì)算中必不可少的一部分。
1.2什么是反向代理
反向代理(Reverse Proxy)是一種網(wǎng)絡(luò)技術(shù),它位于服務(wù)器和客戶端之間,將客戶端的請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器,并將后端服務(wù)器的響應(yīng)返回給客戶端。與正向代理不同,反向代理不是代表客戶端訪問(wèn)遠(yuǎn)程服務(wù)器,而是代表服務(wù)器響應(yīng)客戶端的請(qǐng)求。反向代理通常用于隱藏真實(shí)的服務(wù)器地址,保護(hù)服務(wù)器免受惡意攻擊,以及提高系統(tǒng)的性能和可靠性。反向代理還可以實(shí)現(xiàn)負(fù)載均衡、緩存、安全過(guò)濾等功能。反向代理服務(wù)器通常位于內(nèi)部網(wǎng)絡(luò)的邊緣,與外部網(wǎng)絡(luò)相連,客戶端通過(guò)訪問(wèn)反向代理服務(wù)器來(lái)訪問(wèn)內(nèi)部網(wǎng)絡(luò)中的應(yīng)用程序和服務(wù)。常見(jiàn)的反向代理服務(wù)器軟件包括Nginx、Apache、HAProxy等。反向代理技術(shù)被廣泛應(yīng)用于Web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、視頻流媒體服務(wù)器等領(lǐng)域。
二、安裝nginx,并對(duì)nginx進(jìn)行基礎(chǔ)配置
完整版一鍵安裝配置nginx腳本
[root@mysql nginx]# cat onekey_install_henshan_nginx.sh
#!/bin/bash
#新建一個(gè)文件夾用來(lái)存放下載的nginx源碼包
mkdir -p /nginx
cd /nginx
#新建工具人用戶、設(shè)置無(wú)法登錄模式
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
#解決軟件依賴關(guān)系、需要安裝的軟件包
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
#到達(dá)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
#編譯、開(kāi)啟一個(gè)進(jìn)程同時(shí)編譯
make -j 1
#編譯安裝
make install
#啟動(dòng)nginx
/usr/local/scnginx66/sbin/nginx
#永久修改PATH變量
PATH=$PATH:/usr/local/scnginx66/sbin
echo "PATH=$PATH:/usr/local/scnginx66/sbin" >>/root/.bashrc
#設(shè)置nginx的開(kāi)機(jī)啟動(dòng)--手動(dòng)添加
#在/etc/rc.local中添加啟動(dòng)命令
#/usr/local/scnginx66/sbin/nginx
echo "/usr/local/scnginx66/sbin/nginx" >>/etc/rc.local
#給文件可執(zhí)行權(quán)限
chmod +x /etc/rc.d/rc.local
#selinux和firewalld防火墻都需要關(guān)閉
service firewalld stop
systemctl disable firewalld
#臨時(shí)關(guān)閉selinux
setenforce 0
#永久關(guān)閉selinux (需要開(kāi)機(jī)重啟)
#vim /etc/selinx/config
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
三、為什么搭建http和https環(huán)境
(30條消息) HTTP協(xié)議和HTTPS協(xié)議_Claylpf的博客-CSDN博客
四、配置http和https環(huán)境
對(duì)nginx的配置文件nginx.conf進(jìn)行配置(其中包括了nginx的一些基本模塊的使用,如限制傳輸速度模塊,限制連接數(shù)量模塊,強(qiáng)制跳轉(zhuǎn)https協(xié)議模塊,info基本信息展示模塊,和https服務(wù)頁(yè)面模塊)
[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協(xié)議的配置
http {
include mime.types;
default_type application/octet-stream;
#(定義訪問(wèn)日志的格式 日志保存在/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服務(wù)器建立的連接就會(huì)斷開(kāi)、 保持連接65秒的時(shí)間、 連接的超時(shí)時(shí)間
#gzip on;
limit_conn_zone $binary_remote_addr zone=addr:10m; #創(chuàng)建一個(gè)連接區(qū)域(開(kāi)辟了一個(gè)名叫addr的內(nèi)存空間、像一個(gè)字典)
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #創(chuàng)建一個(gè)連接區(qū)域(開(kāi)辟了一個(gè)名叫one的內(nèi)存空間、像一個(gè)字典)、每一秒產(chǎn)生1個(gè)可以訪問(wèn)的請(qǐng)求
server {
listen 80;
server_name www.claylpf.xyz; #目的是直接從http協(xié)議跳轉(zhuǎn)到https協(xié)議去
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; #下載速度達(dá)到100k每秒的時(shí)候、進(jìn)行限制
limit_rate 10k; #限制每秒10k的速度
limit_req zone=one burst=5; #同一時(shí)間同一ip最多5人同時(shí)訪問(wèn) 峰值是5 每一秒通過(guò)one的設(shè)定、產(chǎn)生一個(gè)空位 1r/s
location / {
root html/feng;
index index.html index.html;
}
error_page 404 /404.html; #無(wú)法找到
error_page 500 502 503 504 /50x.html; #一般是nginx內(nèi)部出現(xiàn)問(wèn)題才會(huì)出現(xiàn)的提示
location = /50x.html {
root html;
}
location = /info {
stub_status; #返回你的nginx的狀態(tài)統(tǒng)計(jì)信息
#access_log off; #在訪問(wèn)的時(shí)候不計(jì)入訪問(wèn)日志里面去
auth_basic "sanchuang website";
auth_basic_user_file htpasswd;
#allow 172.20.10.2; #允許172.20.10.2的ip地址訪問(wèn)
#deny all; #拒絕所有用戶訪問(wèn)
}
}
# HTTPS server
server {
listen 443 ssl;
server_name www.claylpf.xyz; #證書(shū)上對(duì)應(yīng)的域名
ssl_certificate 9581058_claylpf.xyz.pem; #自己在阿里云上申請(qǐng)的免費(fèi)的CA證書(shū)
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協(xié)議 跳轉(zhuǎn)到 https協(xié)議
?? ?在http協(xié)議的server中
? ? 添加:
? ? server {
? ? ? ? listen ? ? ? 80;
? ? ? ? server_name ?www.claylpf.xyz;
? ? ? ? return ? ? ? 301 ? ? ?https://www.claylpf.xyz; ? #--> 永久重定向 ??
?? ?}
狀態(tài)碼為 301 轉(zhuǎn)換訪問(wèn)
五、配置成功后對(duì)nginx進(jìn)行檢查和運(yùn)行
nginx -t? 可以用來(lái)檢查nginx的配置文件
最后啟動(dòng)nginx
方法一:之間在shell里(命令行)?輸入? nginx (因?yàn)槲以谂渲梦募锱渲昧薖ATH,可以直接輸入)
方法二:進(jìn)入
[root@mysql keepalived]# cd /usr/local/scnginx66/sbin/
[root@mysql sbin]# ls
nginx
[root@mysql sbin]#
讓后使用 ./nginx 可以運(yùn)行nginx啦
如需修改 還可以使用 ./nginx -s reload 進(jìn)行刷新配置哦
ps aux|grep nginx 可以查看是否產(chǎn)生了nginx對(duì)應(yīng)的進(jìn)程
六、測(cè)試
最后配置windows的hosts,使windows上的瀏覽器在訪問(wèn)這些域名的時(shí)候能夠完成IP地址的解析
目錄:C:\Windows\System32\drivers\etc 里的hosts文件文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-719290.html
通過(guò)瀏覽器輸入域名進(jìn)行驗(yàn)證,如果出現(xiàn)錯(cuò)誤,可以查看nginx的錯(cuò)誤日志error.log,查找出錯(cuò)誤,并且將其解決。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-719290.html
到了這里,關(guān)于使用nginx搭建http和https環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!