Windows 下 nginx+PHP+MySQL 环境部署(一)——nginx 安装部署

所有资源链接
或者,如果你不嫌麻烦,可以去它们的官网(如下)慢慢下载……

下载

nginx(它们这款软件在官网上的名称就是小写的,可能是因为它这只是 engine x 的缩写吧)
选择 nginx/Windows-* 下载。

安装

  1. 解压压缩包,双击打开 nginx.exe,窗口会自动隐藏。
  2. 打开浏览器,访问 http://localhost/
  3. 如果一切正常的话,你将会看到:
    nginx 欢迎页面

配置

配置错误界面

打开 .\conf\nginx.conf 文件,可以看到它大致如下图所示:
nginx.conf
#error_page 404 /404.html; 一行前面的 # 去掉,在 .\html 目录下放置 404.html
同理,复制此行粘贴在下方,改为 error_page 403 /403.html; .

配置 HTTPS

这是第一个坑。

首先,在 nginx 安装目录下新建 cert 文件夹,也可以命名为其他名字。
如果你已经有了 SSL 证书,请将 .pem 证书和 .key 私钥复制到新建的文件夹内,然后跳转至修改配置文件

生成自签名证书

单独下载 OpenSSL
选择 Win64 OpenSSL v* 中的 EXE 或 MSI 下载安装。随后打开计算机属性—高级系统设置—环境变量,在 Patch 值的最后添加上你的 OpenSSL 的 bin 文件夹的位置。

  1. 打开命令提示符,cd 到这个文件夹内。
  2. 键入
openssl genrsa -des3 -out server.key 2048

以生成私钥。

  1. 键入
openssl req -new -key server.key -out server.csr

以生成证书签名请求文件。

需要依次输入国家,地区,城市,组织,组织单位,Common Name 和电子邮件地址。

这是我输入的信息,仅供参考

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Xiao Bai Shu
Organizational Unit Name (eg, section) []:Xiao Bai Shu
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:xiao*@126.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:Xiao Bai Shu
  1. 重命名 server.key 文件为 server.key.org,然后执行
openssl rsa -in server.key.org -out server.key

以删除密码。

  1. 执行
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

以签署证书。

  1. 执行
openssl rsa -in server.key -out server.pem

openssl x509 -in server.crt -out server.pem

以生成 .pem 证书。

至此,SSL 证书签署完成。你可以打开并安装 server.crt受信任的根证书颁发机构存储区中。在确认指纹的对话框出现时,点击“是”以完成安装。

打开防火墙开放端口

  1. 转到控制面板—系统和安全—Windows Defender 防火墙(有的版本叫 Windows 防火墙)—高级设置。
  2. 在控制台左侧点击出站规则
  3. 点击菜单中的操作—新建规则,选择端口,TCP、所有特定端口,输入80,选择允许连接,然后下一步全选,名称输入80 端口方便辨识。
  4. 用同样的方法将443端口也开放掉。

修改配置文件

打开 .\conf\nginx.conf 文件,在server段中最前面加入如下代码:

        # HTTP
        listen 80 default backlog=2048;

        # HTTPS

        #监听443端口
        listen        443 ssl;

        #你的域名
        server_name  location;

        #ssl证书的pem文件路径
        ssl_certificate  /Server/nginx-1.21.6/cert/server.pem;
        #ssl证书的key文件路径
        ssl_certificate_key /Server/nginx-1.21.6/cert/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_protocols        SSLv2 SSLv3 TLSv1.2;
        ssl_ciphers          HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

刷新 nginx 配置

在命令提示符中 cd 到 nginx 的安装目录,执行

nginx -s reload

以刷新配置。

脚本

事实上,我写了一个 bat 脚本以便于刷新配置,代码如下:

@echo off
::在您自己使用而不是打包发布给别人时,您可以删掉下面的两行代码
echo Refresh-NGINX 工具 by 小白鼠 博客:https://blog.csdn.net/weixin_47513791
echo 正在刷新 nginx 配置……
copy /b Q:\Server\nginx-1.21.6\conf\nginx.conf Q:\Server\nginx-1.21.6\conf\backup\%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%.%time:~9,2%.conf >nul 2>nul
::以下目录请自行更改为 nginx 的安装目录
"Q:\Server\nginx-1.21.6\nginx.exe" -s reload

请先在 .\conf 目录下创建一个名为 backup 的文件夹,然后以 ANSI 编码保存以上代码为 refresh-nginx.bat 并将其放入一个已被加入到 Path 环境变量的目录中。在以后您可以通过键入 refresh-nginx 来实现 nginx 的配置更新和备份。

测试 HTTPS

访问 https://localhost/,如果您使用的是自签名证书,浏览器可能会显示安全性页面。点击高级,选择继续前往https://localhost/(不安全)

如果不出意外的话,应该就可以正常访问了。

我在这里遇到了一个浪费了我两个小时的坑,总是显示“该网页将您重定向的次数过多”,后来逐条注释配置,发现是 location /

proxy_pass  http://127.0.0.1:80;

这一行引起的。注释掉并刷新配置后,访问正常。


至此,nginx 部分的教程完毕。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值