Centos安装Nginx
Nginx是一款高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。它以高并发、低内存使用和模块化的特点而闻名,非常适合用于静态内容的服务和负载均衡。
安装Nginx
在CentOS系统上安装Nginx可以通过使用EPEL(Extra Packages for Enterprise Linux)仓库来完成。以下是详细步骤:
安装EPEL仓库
首先,安装EPEL仓库,这是一个为RHEL和CentOS提供附加软件包的仓库。
sudo yum install epel-release更新软件包
安装EPEL仓库后,更新系统中的所有软件包,以确保系统和软件包都是最新版本。
sudo yum update安装Nginx
接下来,安装Nginx服务器。
sudo yum install nginxNginx命令
下面是一些常用的Nginx管理命令。
启动Nginx
sudo systemctl start nginx设置开机自启
sudo systemctl enable nginx关闭Nginx
sudo systemctl stop nginx关闭开机自启
sudo systemctl disable nginxNginx配置
一般Nginx默认配置都是在一个文件中,这样会显得有点乱且不易维护。因此,建议采用分块配置,以提高可读性和维护性。
基础块配置 默认在 /etc/nginx/nginx.conf
基础块配置
# worker_processes指定工作进程的数量,这里设置为1,通常设置为CPU核心数
worker_processes 1;
events {
# worker_connections定义单个工作进程允许的最大并发连接数
worker_connections 1024;
}
http {
# 引入mime类型定义文件
include mime.types;
# 设置默认的MIME类型
default_type application/octet-stream;
# 允许客户端请求的最大单文件体积
client_max_body_size 1024m;
# 开启gzip压缩功能
# --------------------------------------------------
gzip on;
# 设置压缩的最小文件大小,文件小于该值将不会进行压缩
gzip_min_length 1k;
# 设置压缩缓冲区的大小和数量
gzip_buffers 16 64k;
# 设置压缩时使用的HTTP协议版本
gzip_http_version 1.1;
# 设置gzip的压缩级别,范围1-9,9压缩级别最高,也最消耗CPU资源
gzip_comp_level 5;
# 需要进行压缩的MIME类型列表
gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
# 在响应头中添加"Vary: Accept-Encoding",告诉代理服务器进行内容缓存时考虑是否支持gzip压缩
gzip_vary on;
# 禁用对IE6及以下版本的gzip压缩,因为这些版本的浏览器对gzip支持不佳
gzip_disable "MSIE [1-6]\.";
# --------------------------------------------------
# 启用sendfile方式传输文件,提高传输效率
sendfile on;
# 设置长连接的超时时间
keepalive_timeout 65;
# 引入自定义的Nginx配置,确保该文件路径和文件名正确
include /home/nginx/nginx.conf;
}服务器块配置
# 官网
server {
# 监听443端口,启用SSL
listen 443 ssl;
# 定义服务器名称,可以处理hhhsl.cn和www.hhhsl.cn
server_name hhhsl.cn www.hhhsl.cn;
# 设置字符编码为UTF-8
charset utf-8;
# 证书文件路径
ssl_certificate /home/nginx/hhhsl.cn/hhhsl.cn_bundle.pem;
# 私钥文件路径
ssl_certificate_key /home/nginx/hhhsl.cn/hhhsl.cn.key;
location / {
# 网站根目录
root /home/hblog/dist;
# 尝试按照顺序访问URI、URI目录和index.html
try_files $uri $uri/ /index.html;
# 默认首页文件
index index.html index.htm;
}
# 后端接口转发
location /api/ {
# 将客户端请求的Host头转发到后端服务器
proxy_set_header Host $http_host;
# 将客户端的真实IP地址转发到后端服务器
proxy_set_header X-Real-IP $remote_addr;
# 将客户端的REMOTE-HOST头转发到后端服务器
proxy_set_header REMOTE-HOST $remote_addr;
# 将客户端的X-Forwarded-For头转发到后端服务器
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 将/api/路径下的请求转发到本地8888端口的后端服务器
proxy_pass http://localhost:8888/;
}
# 定义错误页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
# 错误页面的根目录
root html;
}
}