# Author:yzcit # Date:2024-11-29 # UpDate:2025-02-19 # Summary: # 1.linux 源代码编译安装 nginx # 2.使用 systemctl 管理 nginx # 3.html 网页部署 # 4.vue、React 单页面网页部署 # 5.添加 https 模块 # 6.配置 https SSL 证书 # 7.请求代理 # # nginx 源代码压缩包文件:/zichensoft/nginx/nginx-1.26.2.tar.gz # nginx 源代码目录: /zichensoft/nginx/nginx-1.26.2 # nginx 安装目录: /zichensoft/nginx/nginxsoft-1.26.2 # nginx 服务文件: /etc/systemd/system/nginx.service # # 编译源代码可能缺少的依赖包 PCRE # 安装 PCRE:apt-get install libpcre3 libpcre3-dev # # 配置 https 可能需要重新编译,编译后使用最新的 nginx 文件 # 重新编译执行:make # (编译好后不要执行 make install,因为会覆盖现有安装的 nginx) # 等待请求结束后停止 nginx # nginx -s quit # # wget -c: 断点续传 # # systemctl enable nginx: 开机自启 nginx # 一、安装 mkdir -p /zichensoft/nginx cd /zichensoft/nginx/ wget -c https://nginx.org/download/nginx-1.26.2.tar.gz tar -xzvf ./nginx-1.26.2.tar.gz cd ./nginx-1.26.2/ mkdir -p /zichensoft/nginx/nginxsoft-1.26.2 ./configure --prefix=/zichensoft/nginx/nginxsoft-1.26.2 # PCRE 报错 apt-get install libpcre3 libpcre3-dev ./configure --prefix=/zichensoft/nginx/nginxsoft-1.26.2 make make install /zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx ps -ef | grep nginx netstat -tulnp | grep nginx /zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx -s reload # 二、服务 vim /etc/systemd/system/nginx.service [Unit] Description=nginx web service Documentation=http://nginx.org/en/docs/ After=network.target [Service] Type=forking PIDFile=/zichensoft/nginx/nginxsoft-1.26.2/logs/nginx.pid ExecStartPre=/zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx -t -c /zichensoft/nginx/nginxsoft-1.26.2/conf/nginx.conf ExecStart=/zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx ExecReload=/zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx -s reload ExecStop=/zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx -s stop PrivateTmp=true [Install] WantedBy=default.target systemctl daemon-reload ./nginx -s quit ./nginx -s stop systemctl start nginx systemctl enable nginx # 三、网页 server { listen 8000; server_name localhost; location / { root /html; # 项目路径 index index.html index.htm; } } # 四、单页面网页 server { listen 8000; server_name localhost; location / { root /vue; # vue 项目路径 index index.html index.htm; try_files $uri $uri/ /index.html; } } # 五、编译 https 模块 /zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx -V /zichensoft/nginx/nginx-1.26.2/configure --prefix=/zichensoft/nginx/nginxsoft-1.26.2 --with-http_stub_status_module --with-http_ssl_module make /zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx -s stop cp /zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx /zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx.bak cp /zichensoft/nginx/nginx-1.26.2/objs/nginx /zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx /zichensoft/nginx/nginxsoft-1.26.2/sbin/nginx -V # 六、配置 https 证书 server { listen 443 ssl; # 替代 ssl on; server_name xxx.com; # 启用 SSL 加密。新版本 Nginx(≥1.15.0)中 ssl on; 可能引发兼容性问题,建议直接在 listen 后添加 ssl 参数 # ssl on; ssl_certificate /root/card/xxx.com.pem; ssl_certificate_key /root/card/xxxx.com.key; location / { # 请求代理到另一个服务器 #proxy_pass http://公网地址:项目端口号; root /html; # 项目路径 index index.html index.htm; } } server { listen 80; server_name xxx.com; # ^(.*)$:匹配所有请求的 URI。 # $host:变量代表请求中的原始主机名。 # $1:是正则表达式中第一个捕获组的内容(在这个中是匹配到的整个 URI)。 # permanent:重写标志,表示这是一个永久重定向(HTTP 状态码 301) rewrite ^(.*)$ https://$host$1 permanent; } # 七、请求代理 server { listen 443; server_name xxx.com; ssl on; ssl_certificate /root/card/xxx.com.pem; ssl_certificate_key /root/card/xxxx.com.key; location / { # 请求代理到另一个服务器 proxy_pass http://公网地址:项目端口号; } }