软件:nginx

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
软件:nginx [2025/10/21 18:47] admin软件:nginx [2025/11/21 23:54] (当前版本) admin
行 25: 行 25:
 模块化设计:Nginx的核心功能相对简单,大部分功能是通过模块实现的。这些模块可以根据需要加载或卸载,提供了高度的灵活性。 模块化设计:Nginx的核心功能相对简单,大部分功能是通过模块实现的。这些模块可以根据需要加载或卸载,提供了高度的灵活性。
  
-部署+===== 部署 =====
  
 #安装Nginx服务器 #安装Nginx服务器
  
-<code -+<code nginx
-#卸载apache2+#卸载apache
 apt purge apache2 apache2-bin apache2-data apache2-utilsi apt purge apache2 apache2-bin apache2-data apache2-utilsi
 +
 #安装Nginx环境依赖 #安装Nginx环境依赖
 apt -y install curl gnupg2 ca-certificates lsb-release debian-archive-keyring apt -y install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
行 40: 行 41:
 systemctl enable nginx systemctl enable nginx
  
-#使用浏览器访问localhost或ip+#使用浏览器访问localhost或ip访问成功 
 +http://127.0.0.1/ 
 + 
 +apt -y install php php-fpm 
 +grep '^listen =' /etc/php/*/fpm/pool.d/www.conf 
 +# 如果返回sock文件地址说明默认监听sock文件 
 +listen = /run/php/php*-fpm.sock 
 +# 如果返回IP:port 说明默认监听本地IP端口   
 +listen = 127.0.0.1:9000 
 +# nginx的ffastcgi_pass `<listen>` 编写规则,sock必须加unix:   
 +fastcgi_pass  unix:/run/php/php8.4-fpm.sock;   
 +fastcgi_pass  127.0.0.1:9000;   
  
 #移除默认站点配置 #移除默认站点配置
行 52: 行 65:
     # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.     # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
     location / {     location / {
 +        # $host保留原始Host头,$request_uri保留路径和参数
         return 301 https://$host$request_uri;         return 301 https://$host$request_uri;
     }     }
行 59: 行 73:
 sudo vi /etc/nginx/conf.d/default.conf sudo vi /etc/nginx/conf.d/default.conf
 server { server {
-    listen       433;+    listen  [::]:433 ssl http2; # IPv6 
 +    listen       433 ssl http2;
     server_name  localhost;     server_name  localhost;
-    root /usr/share/nginx/html;+     
 +    #填写证书文件绝对路径 
 +    ssl_certificate /etc/nginx/conf.d/cert/localhost.pem; 
 +    #填写证书私钥文件绝对路径 
 +    ssl_certificate_key /etc/nginx/conf.d/cert/localhost.key; 
 + 
 +    root /var/www/html;
     location / {     location / {
             index index.php index.html index.htm;             index index.php index.html index.htm;
     }     }
     location ~ .php$ {     location ~ .php$ {
-            root /usr/share/nginx/html;+            root /var/www/html;
             fastcgi_pass <listen>;             fastcgi_pass <listen>;
             fastcgi_index index.php;             fastcgi_index index.php;
行 72: 行 93:
             include fastcgi_params;             include fastcgi_params;
     }     }
 +    # error_page  404              /404.html;
     error_page   500 502 503 504  /50x.html;     error_page   500 502 503 504  /50x.html;
     location = /50x.html {     location = /50x.html {
         root   /usr/share/nginx/html;         root   /usr/share/nginx/html;
     }     }
 +}
 +
 +location = /adminer.php{
 +    root /var/www/html;
 +    try_files $uri =404;
 +    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
 +    include fastcgi_params;
 +    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 } }
  
行 81: 行 111:
 # 把include /etc/nginx/sites-enabled/* 注释 # 把include /etc/nginx/sites-enabled/* 注释
 # include /etc/nginx/sites-enabled/* # include /etc/nginx/sites-enabled/*
 +按`esc`键,输入`:wq`退出
  
- +在终端执行命令 
-#修改root /usr/share/nginx/html/; +#配置是否正确 
-root /var/www/html/+nginx -t 
 +#查看有没有ok和successful 
 +#nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
 +#nginx: configuration file /etc/nginx/nginx.conf test is successful
 #重启 #重启
 sudo systemctl restart nginx sudo systemctl restart nginx
行 112: 行 146:
 </code> </code>
  
-SSL+===== SSL ===== 
 + 
 +==== 自生成测试 ==== 
 + 
 +<code -> 
 +apt -y install openssl  
 + 
 +openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ 
 +    -keyout localhost.key \ 
 +    -out localhost.pem \ 
 +    -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/CN=localhost" 
 +</code> 
 + 
 +-x509:生成自签名证书(不是 CSR) 
 + 
 +-nodes:不加密私钥(Nginx 启动时不需要输密码) 
 + 
 +-days 365:有效期 365 天(可改) 
 + 
 +-newkey rsa:2048:生成 2048 位 RSA 私钥 
 + 
 +-keyout localhost.key:私钥输出文件 
 + 
 +-out localhost.pem:证书输出文件(PEM 格式) 
 + 
 +-subj "...":自动填写证书信息(避免交互) 
 + 
 +-subj 字段含义(按需修改): 
 + 
 +字段 含义 示例 
 + 
 +C 国家(2字母) CN 
 + 
 +ST 省份 Beijing 
 + 
 +L 城市 Dongcheng 
 + 
 +O 组织/公司 MyCompany 
 + 
 +CN 通用名称(必须匹配访问的域名或 IP) localhost 或 127.0.0.1 
 + 
 +<code -> 
 +chmod 600 localhost.key 
 +chmod 644 localhost.pem 
 +mkdir /etc/nginx/conf.d/cert 
 +mv localhost.* /etc/nginx/conf.d/cert/ 
 +</code> 
 + 
 +自签名 SSL 证书在浏览器中一定会提示“不安全”,这是正常且预期的行为。自签名证书是任何人都可以生成,无法验证网站身份,存在中间人攻击风险。证书不是由受信任的 CA(证书颁发机构)签发的 
 + 
 +Chrome / Edge:在警告页面点击 “高级” → “继续前往...(不安全)” 
 + 
 +或直接在页面聚焦时输入:thisisunsafe(无提示,直接生效!) 
 + 
 +Firefox:点击 “高级” → “接受风险并继续” 
 + 
 +==== 生产环境 ====
  
 登录数字证书管理服务控制台 登录数字证书管理服务控制台
行 121: 行 211:
  
 在立即购买面板,保持默认选项,仔细阅读并勾选服务协议,单击立即购买并完成支付 在立即购买面板,保持默认选项,仔细阅读并勾选服务协议,单击立即购买并完成支付
 +
 +阿里云->数字证书管理服务->SSL证书管理->个人测试证书(原免费证书)->更多->下载
 +
 +在终端执行命令
 +
 +#查看nginx的配置文件路径,记录nginx.conf路径
 +
 +nginx -t
 +
 +#创建证书目录,命名为cert
 +
 +mkdir /etc/nginx/conf.d/cert
 +
 +#将证书文件和私钥文件上传到Nginx服务器的证书目录
 +
 +mv localhost_nginx.zip /etc/nginx/conf.d/cert/
 +
 +#解压
 +
 +unzip /etc/nginx/conf.d/cert/localhost_nginx.zip
 +
 +#配置
 +
 +vi /etc/nginx/conf.d/default.conf
 +
 +修改default.conf文件
 +
 +<code ->
 +listen 443 ssl;
 +
 +#填写证书文件绝对路径
 +ssl_certificate /etc/nginx/conf.d/cert/localhost.pem;
 +#填写证书私钥文件绝对路径
 +ssl_certificate_key /etc/nginx/conf.d/cert/localhost.key;
 +
 +#安全配置
 +ssl_session_cache shared:SSL:1m;
 +ssl_session_timeout 5m; 
 +#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
 +#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
 +ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 +ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
 +#表示优先使用服务端加密套件。默认开启
 +ssl_prefer_server_ciphers on;
 +</code>
 +
 +按`esc`键,输入`:wq`退出
  
  
  • 软件/nginx.1761043661.txt.gz
  • 最后更改: 2025/10/21 18:47
  • admin