windows安装nginx并设置开机自启动

news/2024/5/19 12:58:46/文章来源:https://blog.csdn.net/lxyoucan/article/details/126900620

在macOS和linux中使用nginx我早已经轻车熟路。突然切到windows的环境中,我反而不会用了。

之前写了《windows使用nginx探索笔记》内容比较冗长,所以本文尽量精简一下。

环境

操作系统:windows 2008R2 Datacenter
已经安装的软件:

  • SQL Server 2014
  • JDK 1.8

nginx

下载

推荐官网下载
https://nginx.org/en/download.html
本文中我下载的版本
https://nginx.org/download/nginx-1.20.2.zip

解压

上面下载的文件,我解压来以下路径。

C:\manuli\nginx-1.20.2

这个路径随意即可。

启动nginx服务

不要直接双击运行,根据官方文档中介绍介绍的方法。https://nginx.org/en/docs/windows.html

nginx默认端口80,所以请使用管理员身份打开PowerShell并执行以下命令

cd C:\manuli\nginx-1.20.2
start nginx

幸运的话,这样已经启动成功了。访问http://localhost/就会看到如下的界面:
在这里插入图片描述
如果你并没有这么幸运,在文章末尾有故障排除方法。

小知识点:
在Linux上,以一般用户身份执行一个需要占用小于1024端口的程序,会得到错误提示:Permission denied这是因为在Linux平台,小于1024的端口被认为是特殊端口。
我想在windows下也有类似的设定。所以如果是默认80端口,则需要使用管理员身份执行。

基本使用

nginx/Windows 作为标准控制台应用程序(不是服务)运行,可以使用以下命令对其进行管理:

  • 快速停止服务
nginx -s stop	
  • 优雅停止服务
nginx -s quit 
  • 更改配置,使用新配置启动新工作进程,优雅关闭旧工作进程
nginx -s reload
  • 重新打开日志文件
nginx -s reopen

设置开机自动启动

设置开机启动,在维护中还是非常有必要的。这样当服务器意外重新启动也不会造成影响了。

下载WinSW.NET4 v2.11.0

不适配的版本

这里使用winsw来配置服务。关于winsw的版本,我测试了以下版本是失败的。

  • WinSW v3.0.0-alpha.10 -X64
    运行没有任务反应,没有创建服务成功。
  • WinSW v2.11.0 -X64
    运行报错:
Failed to load the dll from [C:\Users\itkey\AppData\Local\Temp\.net\WinSW-x64\jqstklar.4hl\coreclr.dll], HRESULT: 0x8007
0057

适配的版本

就在我要放弃使用winsw时,我发现我这台机器上安装有.NET Framework 4
在这里插入图片描述
我不清楚是系统自带,还是因为安装了sql server自动安装了。

我操作的服务器是windows 2008 R2,实际可成功使用winsw版本WinSW v2.11.0 NET4
在这里插入图片描述
https://github.com/winsw/winsw/releases/tag/v2.11.0

配置自动启动服务

  1. 把WinSW.NET4.exe复制到C:\manuli\nginx-1.20.2目录并重命为nginx-server.exe
  2. C:\manuli\nginx-1.20.2目录新增nginx-server.xml,只要与上面的exe名称一样就行了。
    内容如下:
<service>  <!-- ID of the service. It should be unique across the Windows system--><id>nginx</id><!-- Display name of the service --><name>nginx</name><!-- Service description --><description>nginx 反向代理</description>  <!-- Path to the executable, which should be started --><executable>C:\manuli\nginx-1.20.2\nginx.exe</executable>
</service>
  1. 管理员权限打开PowerShell,并执行以下命令
cd C:\manuli\nginx-1.20.2
nginx-server.exe install

在这里插入图片描述
这样服务就创建成功了。

  1. win+r运行输入Services.msc,回车打开服务管理器
    在这里插入图片描述
    现在就可以在服务里找到我的刚才创建的服务了。
    在这里插入图片描述
    在这里插入图片描述
  • 点击启动按钮,可以立马启动nginx
  • 点击停止按钮,就可以立马停止nginx
  • 启动类型默认是自动,就说明是开机启动的。如果以后不想开机启动就设置成手动

设置完成以后,重新启动电脑测试一下。发布nginx已经可以开机自动启动啦!任务完成!


故障

目前我遇到过的故障基本是因为以下两个原因导致:

  1. nginx使用了特殊端口比如1024以内的端口,需要管理员权限执行。
  2. nginx的所用的端口已经被占用

故障排查技巧

查进程

tasklist /fi "imagename eq nginx.exe"

如果能查到进程,基本上是成功了。
查报错日志
日志保存路径。
nginx-1.20.2\logs\error.log

windows2008中80端口被System占用的问题

查了一下进程占用,占用的进程名是System,PID为4

直接说结论:

  1. IIS占用了80端口

  2. SQL Server Reporting Services服务也会占用80端口
    把以上两个服务禁用即可。
    解决办法:

  3. World Wide Web Publishing Service服务设置成禁用
    在这里插入图片描述

  4. SQL Server Reporting Services服务设置成手动
    在这里插入图片描述
    详细探索过程见:
    《windows使用nginx探索笔记》
    https://blog.csdn.net/lxyoucan/article/details/126898516

参考

  • 《windows使用nginx探索笔记》
    https://blog.csdn.net/lxyoucan/article/details/126898516
  • 《nginx for Windows》
    https://nginx.org/en/docs/windows.html
  • 《Linux上1024以下的端口》
    https://blog.csdn.net/m0_48283915/article/details/109046019
  • 《windows下快速安装nginx 并配置 开机自启动》
    https://cloud.tencent.com/developer/article/1888447

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_9367.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言中malloc(),free(),calloc(),realloc()

申请内存malloc()在申请内存时不会对内存进行初始化赋值 在申请内存后&#xff0c;没有对内存进行初始化的话&#xff0c;这段内存中就存储着系统随机值。 int n 5; int* p (int*)malloc(n * sizeof(int));malloc(size):size就是你想开辟的内存的字节大小。我们通常想要用这段…

SpringCloud基础6——分布式事务,Seata

用于复习快速回顾。 目录 1.分布式事务问题 1.1.本地事务&#xff0c;ACID原则 1.2.分布式事务 1.3.演示分布式事务问题 2.理论基础 2.1.CAP定理 2.1.1.一致性&#xff0c;数据同步 2.1.2.可用性&#xff0c;节点正常访问 2.1.3.分区容错 2.1.4.矛盾 2.2.BASE理论 …

vulnhub-xxe lab: 1

ifconfig nmap 192.168.61.0/24 找到192.168.61.145 目录扫描&#xff08;御剑&#xff09; 192.168.61.145/xxe 192.168.61.145/admin.php 无法访问&#xff0c;但是robots.txt里面写的应该不会是无效网站&#xff0c;所以可能是被拒绝访问了 抓xxe的包 可以发现是用xml写的…

[ web基础篇 ] Burp Suite 爆破 Basic 认证密码

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

层次选择器

层次选择器 后代选择器简介后代选择器可以选择作为某元素后代的元素(包括儿子,孙子,重孙子) 两个元素之间的层次间隔可以是无限的示例<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><title>Title</t…

怎么把握住股票每天的最佳交易时机?

每个股民都希望自己能够在每天的股价最高点卖出&#xff0c;然后在最低点再买回来&#xff1b;但是怎么去判断最好的交易时机呢&#xff0c;很多人会想很多方法去识别判断最佳交易点&#xff0c;今天给大家分享一种方法&#xff1b;我一直在思考股票交易的底层逻辑是啥&#xf…

如何在基础镜像中安装指定python版本

背景 由于规范要求要使用指定的镜像版本,但是由于该镜像中的python与我使用的版本有差异,怕引起一些不必要的兼容问题,所以我需要自己按基础镜像基础上安装对应版本的python。 Dockerfile 直接上最终dockerfile,为什么这样写,后面说到。 FROM centos:7 # 指定工作目录 WOR…

【2022中国高校计算机大赛 微信大数据挑战赛】Top 1-6 方案总结

前段时间参加了 2022中国高校计算机大赛 微信大数据挑战赛&#xff0c;比赛链接&#xff1a;https://algo.weixin.qq.com/。 由于时间原因精力有限&#xff0c;我们队伍的方案做的比较简陋&#xff1a; 【初赛&#xff1a;rank-18&#xff0c;复赛&#xff1a;rank-40&#xff…

网课查题接口 搜题公众号对接题库教程 (附赠题库接口)

网课查题接口 搜题公众号对接题库教程 &#xff08;附赠题库接口&#xff09; 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查…

bm19bm7

为什么不定义如果两点相等呢 等于的话峰值统一取右 以右来比较 波峰就行 不一定是最大的 在这里插入代码片 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param nums…

微信小程序转为App并上架应用市场

先说说背景吧&#xff0c;笔者开发了一款微信工具类小程序&#xff0c;刚开始&#xff0c;小程序的日访问量和用户数都还可以&#xff0c;但后面慢慢的发现&#xff0c;受限于微信小程序平台规则&#xff0c;很难对用户进行更深入的运营&#xff0c;用户流失问题也将逐渐凸显出…

‘std::thread‘ has not been declared

出现这个问题的原因就是 目前MinGW GCC64还不支持std::thread 这是我的gcc版本 PS D:\MyCode> gcc --version gcc.exe (x86_64-win32-seh-rev0, Built by MinGW-W64 project) 8.1.0 Copyright © 2018 Free Software Foundation, Inc. This is free software; see the s…

七、RequestResponse

Request&Response 第一章 Request 1. 目标 了解Request的概念了解Request的组成部分掌握Request获取请求行的信息掌握Request获取请求头的信息掌握Request获取请求参数掌握解决请求参数乱码掌握Request域对象掌握请求转发 2. 内容 2.1 Request概述 2.1.1 Request的概…

Part16:Pandas的分层索引MultiIndex怎么用?【详解】

Pandas的分层索引Multilndex 1为什么要学习分层索引Multilndex? 1、分层索引:在一个轴向上拥有多个索引层级&#xff0c;可以表达更高维度数据的形式; 2、方便的进行数据筛选&#xff0c;如果有序则性能更好; 3、groupby等操作的结果&#xff0c;如果是多KEY&#xff0c;结…

元宇宙产业委常务副主任委员甘华鸣:关于术语“元宇宙”以及相关问题

【央链知播-编者按&#xff1a;元宇宙产业委常务副主任委员甘华鸣就全国科学技术名词审定委员会元宇宙及核心术语概念研讨会提出的一个观点&#xff0c;发表自己的看法&#xff0c;写了《关于术语“元宇宙”以及相关问题》一文&#xff0c;现转发供元宇宙产业和学术界思考】 以…

老鼠出迷宫

老鼠出迷宫 现有一个图形如下&#xff1a; 要求老鼠在左边第一个位置&#xff0c;走到绿色标的出口橙色为边界不能走。 表盘可以看做是一个[8][7]大小的二维数组&#xff0c;可以用1表示边界&#xff0c;0表示可以走 int [][] arrMap new int[8][7];得到一个数组&#xff1…

Python——基础语法(模块、包、文件读写等操作)

一、模块 概述&#xff1a;一个模块就是一个扩展名为.py的文件&#xff0c;可以包含多个函数、类、语句&#xff1b;使用模块可以提高代码的可维护性、可重用性&#xff0c;避免函数名和变量名冲突&#xff0c;方便其他程序和脚本的导入和使用。 二、模块的自定义 创建一个新…

基于ssm的社区医院儿童预防接种管理系统设计与实现-计算机毕业设计源码+LW文档

开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&…

且看五年开发码农,如何备战仨月硬刚字节面试官,轻松拿offer

写在前面 前不久跟几个哥们儿在一起吃喝玩闹&#xff0c;因为都是程序员出身&#xff0c;多少还是会谈谈各自公司的状况&#xff0c;其中一位朋友就是面临着跳槽换工作的情况。虽然做了好几年开发&#xff0c;但还是有很大压力&#xff0c;不光因为此次是想进字节跳动&#xf…

变更控制委员会CCB

在实施整体变更控制过程中&#xff0c;每项记录在案的变更请求都必须由一位责任人批准或否决&#xff0c;这个责任人通常是项目发起人或项目经理。应该在项目管理计划或组织流程中指定这位责任人。必要时&#xff0c;应该由变更控制委员会&#xff08;CCB&#xff09;来开展实施…