nginx是一款輕量級web服務(wù)器辨液,主要有負(fù)載均衡和反向代理的特性虐急。
安裝準(zhǔn)備
nginx
一些模塊需要依賴lib
庫箱残,所以先安裝lib
庫,執(zhí)行以下命令:
[root@localhost local]# yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
下載
- 在官網(wǎng)下載安裝包
安裝
- 解壓文件:
tar -zxvf nginx-1.20.2.tar.gz
- 解壓之后進(jìn)入到nginx目錄:
cd nginx-1.20.2
- 默認(rèn)配置模塊:
./configure
需要添加https
配置模塊:
./configure --prefix=/usr/local/nginx --with-http_ssl_module
- 編譯
make
- 安裝
make install [路徑止吁,默認(rèn)安裝在usr/local路徑下]
啟動被辑、關(guān)閉
# 啟動
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 重啟
/usr/local/nginx/sbin/nginx -s reload
# 關(guān)閉
/usr/local/nginx/sbin/nginx -s stop
每次啟動或者重啟服務(wù)都需要輸入一大串路徑,為了簡化操作敬惦,配置一下
systemctl
服務(wù)盼理。
配置systemctl
服務(wù)
- 在
/usr/lib/systemd/system
創(chuàng)建nginx.service
文件:
vim /usr/lib/systemd/system/nginx.service
- 添加配置內(nèi)容:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
- 配置systemctl之后的啟動方式
# 查詢狀態(tài)
systemctl status nginx
# 啟動
systemctl start nginx
# 重啟
systemctl restart nginx
# 關(guān)閉
systemctl stop nginx
# 設(shè)置開機(jī)啟動
systemctl enable nginx
- 啟動
nginx
,訪問http://127.0.0.1
,出現(xiàn)如下頁面說明nginx
啟動成功:
配置
修改conf/nginx.conf
配置文件俄删。
找到server
模塊下的80
端口宏怔。
- 修改
server_name
后面的域名奏路,我這里改成www.jeremy7.cn
。 - 在
location /
下添加proxy_pass
反向代理:
proxy_pass http://wwwtomcat;
- 對應(yīng)添加一個
upstream
模塊,添加轉(zhuǎn)發(fā)的路徑:
upstream wwwtomcat {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name www.jeremy7.cn;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://wwwtomcat;
root html;
index index.html index.htm;
}
}
配置https
開啟 443端口
server {
listen 443 ssl;
#配置HTTPS的默認(rèn)訪問端口為443臊诊。
#如果未在此處配置HTTPS的默認(rèn)訪問端口鸽粉,可能會造成Nginx無法啟動。
#如果您使用Nginx 1.15.0及以上版本抓艳,請使用listen 443 ssl代替listen 443和ssl on触机。
server_name yourdomain.com; #需要將yourdomain.com替換成證書綁定的域名。
root html;
index index.html index.htm;
ssl_certificate cert/cert-file-name.pem; #需要將cert-file-name.pem替換成已上傳的證書文件的名稱玷或。
ssl_certificate_key cert/cert-file-name.key; #需要將cert-file-name.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; #表示使用的TLS協(xié)議的類型偏友。
ssl_prefer_server_ciphers on;
location / {
root html; #站點(diǎn)目錄蔬胯。
index index.html index.htm;
}
}
-
server_name
改成自己的申請的域名 -
ssl_certificate
替換成.pem
后綴的證書文件 -
ssl_certificate_key
替換成.key
后綴的證書文件 -
location /
里面添加反向代理,也是上面的反向代理:
proxy_pass http://wwwtomcat;
測試配置是否正確:
/usr/local/nginx/sbin/nginx -t
http強(qiáng)轉(zhuǎn)https
server
模塊添加配置
rewrite ^(.*)$ https://$host$1 permanent;#將http轉(zhuǎn)成https