山西推广型网站建设,在线设计名字,0元可以注册公司吗,网站商城建设实训心得目录 前言
配置Nginx监听端口和服务器块
# 防DDoS配置
# 日志配置
# 设置服务器块
监听端口
网站根目录
默认文件
静态文件目录
图像文件目录
# 自定义错误页面
# 反向代理配置
# 配置SSL/TLS
1、获取SSL/TLS证书
2、安装证书
3、配置SSL/TLS
# 配置SSL协议版本…目录 前言
配置Nginx监听端口和服务器块
# 防DDoS配置
# 日志配置
# 设置服务器块
监听端口
网站根目录
默认文件
静态文件目录
图像文件目录
# 自定义错误页面
# 反向代理配置
# 配置SSL/TLS
1、获取SSL/TLS证书
2、安装证书
3、配置SSL/TLS
# 配置SSL协议版本和密码套件
# 配置SSL会话缓存
# 启用HSTS标头告诉浏览器始终使用HTTPS
# 防止点击劫持
# 安全头部配置 前言
当你需要配置Nginx服务器来托管网站或应用程序时以下是一些基本步骤和示例配置以帮助你入门。请注意Nginx的配置可以非常灵活可以根据你的具体需求进行自定义。以下示例假设你已经在服务器上安装了Nginx。
1、打开终端并登录到你的服务器。
2、使用文本编辑器比如nano或vim打开Nginx配置文件。
配置文件通常位于 /etc/nginx/nginx.conf或 /etc/nginx/sites-available/default具体位置可能因你的操作系统而异。以下是使用vim编辑器的示例
sudo vim /etc/nginx/nginx.conf
配置Nginx监听端口和服务器块
在nginx.conf中你可以找到一个名为http的块其中包含Nginx的全局配置。你可以更改默认监听端口默认为80和添加服务器块。
# HTTP模块配置段
http {# 防DDoS配置limit_req_zone $binary_remote_addr zoneddos:10m rate10r/s;# 日志配置access_log /var/log/nginx/access.log;# 设置服务器块server {listen 80; # 监听端口server_name example.com; # 域名location / {root /var/www/html; # 网站根目录index index.html; # 默认文件}location /static/ {alias /var/www/static/; # 静态文件目录}location /images/ {alias /var/www/images/; # 图像文件目录}# 自定义错误页面error_page 404 /404.html;location /404.html {root /var/www/html;internal;}# 反向代理配置location /api/ {proxy_pass http://backend-server; # 后端服务器地址}# 配置SSL/TLSlisten 443 ssl;server_name example.com;ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private-key.key;# 配置SSL协议版本和密码套件ssl_protocols TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers off;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;# 配置SSL会话缓存ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;# 启用HSTS标头告诉浏览器始终使用HTTPSadd_header Strict-Transport-Security max-age31536000; includeSubDomains; preload;# 防止点击劫持add_header X-Frame-Options SAMEORIGIN;# 安全头部配置add_header X-Content-Type-Options nosniff;add_header X-XSS-Protection 1; modeblock;add_header X-Frame-Options SAMEORIGIN;}
}# 防DDoS配置
limit_req_zone: 这是一个Nginx指令用于定义一个请求限制区域。这个区域用来记录每个客户端的请求频率信息。
$binary_remote_addr: 这是一个Nginx变量表示客户端的IP地址。每个不同的IP地址都会被视为一个单独的客户端。
zoneddos:10m: 这个部分定义了请求限制区域的名称为ddos并分配了10兆字节的内存空间10m来存储相关数据。
rate10r/s: 这部分规定了请求速率限制。它表示每个IP地址最多允许发送10个请求每秒10r/s。
# 日志配置
access_log 是 Nginx 配置指令用于定义访问日志的设置。
/var/log/nginx/access.log 是日志文件的路径它告诉 Nginx 将访问日志写入到名为 access.log 的文件中。通常Nginx 日志文件会放在 /var/log/nginx/ 目录下。
# 设置服务器块
监听端口
监听端口是指在计算机网络中一台计算机或网络设备通过指定一个特定的网络端口号来等待和接收传入的网络连接或数据流。每个网络服务或应用程序可以监听一个或多个端口这些端口用于标识不同的网络服务或通信通道。
网站根目录
网站根目录也称为网站根文件夹、网站根文件目录或网站根目录结构是一个Web服务器上的主要文件夹它包含了构成整个网站的文件和资源。这个目录通常是Web服务器用来提供网站内容的起点也是访问网站时的默认基础路径。
默认文件
当你访问一个网站时通常会看到网站的首页或默认页面。这个默认页面被称为索引文件它是网站的第一个展示给访问者的页面。
静态文件目录
静态文件目录是一个包含网站的静态文件不需要服务器端处理的文件的文件夹或目录。这些静态文件可以包括HTML、CSS、JavaScript、图像、字体文件等它们不需要在服务器端动态生成或处理而是直接提供给客户端浏览器。
图像文件目录
图像文件目录是一个用于存储网站或应用程序中的图像文件的文件夹或目录。这些图像文件可以包括各种图像类型例如JPEG、PNG、GIF、SVG等。图像文件目录通常用于组织和管理网站中的图像资源使其能够在网页上展示或通过链接提供给用户。
# 自定义错误页面
这个配置告诉Nginx当发生404错误时将用户重定向到/404.html页面。location块内的root指令定义了404页面所在的目录这里是/var/www/html。internal指令用于限制该location仅在Nginx内部处理不会向外部暴露这个页面的路径。
# 反向代理配置
location /api/ { ... }: 这是一个location块指定了要处理以/api/开头的URL路径的请求。只有满足这个条件的请求会进入这个location块中进行处理。
proxy_pass http://backend-server;: 这是配置块中最重要的部分。它指定了Nginx应该将请求转发到的后端服务器的地址。
例如如果你的后端服务器的地址是http://localhost:8000那么这里应该写成 proxy_pass http://localhost:8000;。
# 配置SSL/TLS
1、获取SSL/TLS证书
首先您需要获取SSL/TLS证书。您可以从权威的证书颁发机构如Lets Encrypt、Comodo、DigiCert等购买证书或者使用自签名证书。自签名证书适用于测试和开发环境但在生产环境中建议使用受信任的证书颁发机构颁发的证书以确保浏览器和客户端的兼容性。
2、安装证书
获得证书后需要将其安装到服务器上。通常证书文件包括一个公钥文件通常以.crt或.pem为扩展名和一个私钥文件通常以.key为扩展名。将这些文件存储在服务器上的安全位置。
3、配置SSL/TLS
在配置文件中找到与SSL/TLS相关的部分在Nginx中通常是在server块内配置SSL。
server { ... }: 这是一个Nginx服务器块用于定义服务器的配置。
listen 443 ssl;: 这一行指定服务器监听的端口是443并启用SSL加密。所有传入的HTTPS请求都将在这个端口上被处理。
server_name example.com;: 这里定义了服务器的域名。
ssl_certificate /path/to/your/certificate.crt; 这行指定了SSL证书的路径该证书用于加密传输的数据。
ssl_certificate_key /path/to/your/private-key.key;: 这行指定了SSL私钥文件的路径用于解密传入的加密数据。
# 配置SSL协议版本和密码套件
配置SSL协议版本和密码套件通常不需要更改为自己的因为这部分配置是针对服务器的安全性和性能进行优化的。
ssl_protocols 指定了支持的TLS版本通常TLSv1.2和TLSv1.3是安全的选择无需更改除非你有特定的需求。
ssl_prefer_server_ciphers 设置为 off 以确保Nginx不会强制使用服务器端密码套件的顺序通常无需更改。
ssl_ciphers 定义了支持的密码套件使用ECDHE椭圆曲线Diffie-Hellman Ephemeral密钥交换和AES-GCM模式通常无需更改。
# 配置SSL会话缓存
这两行配置是用于配置SSL会话缓存的设置它们对于提高服务器的SSL/TLS性能非常重要。让我解释它们的含义
ssl_session_cache shared:SSL:10m;这行配置指定了SSL会话缓存的类型、名称和大小。
10m这部分指定了会话缓存的大小。在示例中缓存的大小被设置为10兆字节MB。这意味着服务器可以存储大约10兆字节的SSL会话数据。
ssl_session_timeout 10m;这行配置指定了SSL会话在缓存中的超时时间。
10m这部分指定了会话的超时时间与上面的缓存大小相对应。在示例中会话将在10分钟后过期并从缓存中删除。
# 启用HSTS标头告诉浏览器始终使用HTTPS
max-age31536000指定了HSTS策略的持续时间以秒为单位。在这里max-age 被设置为31536000秒等于一年的时间。这意味着一旦浏览器接收到这个HSTS标头它将在一年内记住你的网站并强制使用HTTPS连接访问。
# 防止点击劫持
这个配置的目的是增强网站的安全性防止点击劫持攻击其中攻击者将您的网页嵌套到他们的恶意网站中以欺骗用户。通过设置X-Frame-Options为SAMEORIGIN您告诉浏览器只允许您的网页在相同的源内被嵌套从而提高了您的网站的安全性
# 安全头部配置
1、X-Content-Type-Options nosniff
X-Content-Type-Options 头部用于控制浏览器是否应该执行MIME类型嗅探。
nosniff 指令告诉浏览器不要执行嗅探即使服务器返回的响应中包含了不一致的MIME类型信息浏览器也不会尝试猜测响应的内容类型。
这有助于防止MIME类型混淆攻击其中攻击者可能会在响应中注入恶意内容并依赖浏览器错误地解释响应的MIME类型。
2、X-XSS-Protection 1; modeblock
X-XSS-Protection 头部用于启用浏览器内置的跨站点脚本XSS过滤器。
1; modeblock 指令启用了XSS过滤器并在检测到潜在XSS攻击时将页面设置为阻止加载。
这有助于防止XSS攻击其中攻击者尝试在网页中注入恶意脚本以执行恶意操作如窃取用户信息或劫持用户会话。
3、X-Frame-Options SAMEORIGIN
X-Frame-Options 头部用于控制是否允许将网页嵌入到 iframe 中。
SAMEORIGIN 指令表示只允许网页在与原始网页相同的域名下嵌套到 iframe 中。
这有助于防止点击劫持攻击其中攻击者可能会尝试将您的网站嵌入到恶意站点中以欺骗用户进行操作或窃取信息。