Nginx(发音为 “engine-x”)是一款高性能的开源Web服务器软件,同时也可用作反向署理、负载均衡器和HTTP缓存。最初由俄罗斯程序员Igor Sysoev开辟,并于2004年初次公开辟布。Nginx以其高效的并发处置惩罚能力、低资源消耗以及高可靠性而著称,特别适用于高流量网站。
1. 基础下令
这些下令适用于大多数Linux发行版,如Ubuntu, CentOS等,它们使用systemd作为初始化系统和服务管理器。
1.1 重新加载systemd配置
当您修改了Nginx的配置文件后,必要重新加载systemd以辨认这些更改。
- sudo systemctl daemon-reload
复制代码 1.2 停止Nginx服务
- sudo systemctl stop nginx
复制代码 1.3 启动Nginx服务
- sudo systemctl start nginx
复制代码 1.4 重启Nginx服务
如果您对配置举行了更改,并盼望这些更改收效,可以使用restart下令。
- sudo systemctl restart nginx
复制代码 1.5 检察Nginx服务状态
用于查抄Nginx服务的状态,包括是否正在运行、末了一次启动时间等信息。
- sudo systemctl status nginx
复制代码 1.6 测试配置和重载Nginx
每次修改配置文件后,使用以下下令举行测试并重载Nginx。
- sudo nginx -t # 测试配置文件是否正确
- sudo systemctl reload nginx # 重新加载配置
复制代码 2. 额外下令
2.1 启用开机自启
确保Nginx服务随系统启动而主动启动。
- sudo systemctl enable nginx
复制代码 2.2 禁用开机自启
相反地,如果我们不盼望Nginx随系统启动而主动启动,可以使用如下下令。
- sudo systemctl disable nginx
复制代码 2.3 逼迫关闭所有Nginx历程
仅建议在常规停止方法(如systemctl stop nginx)不起作用时使用。
请注意,直接杀掉Nginx历程(使用pkill -9 nginx
)大概会导致数据丢失或损坏,由于它不会给Nginx机会正常关闭连接和生存状态。因此,尽量使用systemctl stop或其他保举的方法来停止服务。
3. Nginx端口占用解决方案
错误信息 nginx: [emerg] bind() to 0.0.0.0:8090 failed (98: Address already in use) 表明端口8090已经被其他历程占用,导致Nginx无法绑定到该端口。要解决这个题目,我们必要找出并处置惩罚占用该端口的历程。以下是具体的步骤:
3.1 查找占用端口8090的历程
在Linux系统中,可以使用以下下令来查找哪个历程正在使用端口8090:
大概使用netstat或ss下令(如果已安装):
- sudo netstat -tuln | grep :8090
复制代码- sudo ss -tuln | grep :8090
复制代码 这些下令将表现占用端口8090的历程ID(PID)和相干信息。
3.2 终止占用端口的历程
找到占用端口8090的历程后,你可以通过其PID终止该历程。假设PID为12345,可以使用以下下令终止它:
如果历程无法正常终止,可以逼迫终止:
注意:请确保你终止的是精确的历程,并且相识终止该历程大概带来的影响。
3.3 验证端口是否已被释放
再次运行上述下令(如lsof -i :8090),确认端口8090已经不再被任何历程占用。
3.4 重新启动Nginx
现在尝试重新启动Nginx:
- sudo systemctl restart nginx
复制代码 大概
- sudo service nginx restart
复制代码 3.5 修改Nginx配置(可选)
如果我们不想终止占用端口8090的历程,可以选择修改Nginx配置文件,使用另一个未被占用的端口。编辑Nginx配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ 目录下的某个文件),找到监听端口的部分,例如:
- server {
- listen 8090;
- ...
- }
复制代码 将其改为另一个可用端口,如8091:
- server {
- listen 8091;
- ...
- }
复制代码 然后生存更改,并重新加载Nginx配置:
通过以上步骤,我们应该能够解决端口冲突的题目,并使Nginx成功启动。
4. Nginx配置文件
4.1 Web前端资源目录
假设我们的Web前端资源文件夹目录长这样:
- /home/miqi/web/
- ├── first/ # 默认根目录
- │ ├── index.html # 默认首页文件
- │ ├── index.htm # 另一个默认首页文件(如果有)
- │ └── resources/ # 资源文件夹
- │ ├── images/ # 图片文件
- │ ├── css/ # CSS 样式表
- │ └── js/ # JavaScript 文件
- │
- ├── news/ # 对应 /category/180918.html
- │ ├── 180918.html # 指定的HTML文件
- │ ├── index.html # 其他可能的首页文件
- │ ├── index.htm # 其他可能的首页文件(如果有)
- │ └── resources/ # 资源文件夹
- │ ├── images/ # 图片文件
- │ ├── css/ # CSS 样式表
- │ └── js/ # JavaScript 文件
- │
- ├── about/ # 对应 /category/180917.html
- │ ├── 180917.html # 指定的HTML文件
- │ ├── index.html # 其他可能的首页文件
- │ ├── index.htm # 其他可能的首页文件(如果有)
- │ └── resources/ # 资源文件夹
- │ ├── images/ # 图片文件
- │ ├── css/ # CSS 样式表
- │ └── js/ # JavaScript 文件
- │
- ├── online/ # 对应 /category/180920.html
- │ ├── 180920.html # 指定的HTML文件
- │ ├── index.html # 其他可能的首页文件
- │ ├── index.htm # 其他可能的首页文件(如果有)
- │ └── resources/ # 资源文件夹
- │ ├── images/ # 图片文件
- │ ├── css/ # CSS 样式表
- │ └── js/ # JavaScript 文件
- │
- ├── product/ # 对应 /category/180919.html
- │ ├── 180919.html # 指定的HTML文件
- │ ├── index.html # 其他可能的首页文件
- │ ├── index.htm # 其他可能的首页文件(如果有)
- │ └── resources/ # 资源文件夹
- │ ├── images/ # 图片文件
- │ ├── css/ # CSS 样式表
- │ └── js/ # JavaScript 文件
- │
- ├── contact/ # 对应 /category/180921.html
- │ ├── 180921.html # 指定的HTML文件
- │ ├── index.html # 其他可能的首页文件
- │ ├── index.htm # 其他可能的首页文件(如果有)
- │ └── resources/ # 资源文件夹
- │ ├── images/ # 图片文件
- │ ├── css/ # CSS 样式表
- │ └── js/ # JavaScript 文件
- │
- └── client/ # 对应 /category/180928.html
- ├── 180928.html # 指定的HTML文件
- ├── index.html # 其他可能的首页文件
- ├── index.htm # 其他可能的首页文件(如果有)
- └── resources/ # 资源文件夹
- ├── images/ # 图片文件
- ├── css/ # CSS 样式表
- └── js/ # JavaScript 文件
复制代码 4.2 Conf 配置文件
这时间就会有一个位于 /usr/local/nginx/conf/nginx.conf 的Nginx服务器焦点配置文件,主要用于界说服务器的全局设置、HTTP和流模块的配置参数,以及对前端相应举行精细化控制。在其中是server字段中
- server {
- listen 8090;
- server_name localhost;
- #charset koi8-r;
- #access_log logs/host.access.log main;
- location / {
- root /home/miqi/web/first/;
- index index.html index.htm;
- }
- location /category/180918.html {
- alias /home/miqi/web/news/;
- index 180918.html index.html index.htm;
- }
- location /category/180917.html {
- alias /home/miqi/web/about/;
- index 180917.html index.html index.htm;
- }
- location /category/180920.html {
- alias /home/miqi/web/online/;
- index 180920.html index.html index.htm;
- }
- location /category/180919.html {
- alias /home/miqi/web/product/;
- index 180919.html index.html index.htm;
- }
- location /category/180921.html {
- alias /home/miqi/web/contact/;
- index 180921.html index.html index.htm;
- }
- location /category/180928.html {
- alias /home/miqi/web/client/;
- index 180928.html index.html index.htm;
- }
复制代码 这段Nginx配置文件界说了一个捏造服务器,监听在8090端口,并且为不同的URL路径设置了不同的处置惩罚规则。以下是对每个部分的详细解释:
4.2.1 基本配置
- server {
- listen 8090;
- server_name localhost;
复制代码
- listen 8090;:指定服务器监听8090端口。
- server_name localhost;:指定服务器名称为localhost,即只相应来自本田主机的请求。
4.2.2 默认根目录
- location / {
- root /home/miqi/web/first/;
- index index.html index.htm;
- }
复制代码
- location / { ... }:匹配根路径(/)的所有请求。
- root /home/miqi/web/first/;:指定文档根目录为 /home/miqi/web/first/。这意味着所有对根路径的请求都会从这个目录中查找文件。
- index index.html index.htm;:如果请求的是一个目录,则尝试返回 index.html 或 index.htm 文件作为默认首页。
4.2.3 特定路径处置惩罚
接下来的部分界说了多个特定路径的处置惩罚规则,使用 alias 指令来指定这些路径对应的物理目录。
- location /category/180918.html {
- alias /home/miqi/web/news/;
- index 180918.html index.html index.htm;
- }
复制代码
- location /category/180918.html { ... }:匹配 /category/180918.html 路径的请求。
- alias /home/miqi/web/news/;:将请求映射到 /home/miqi/web/news/ 目录下。注意,alias 会替换整个匹配部分(包括 /category/180918.html),所以现实访问的是 /home/miqi/web/news/180918.html。
- index 180918.html index.html index.htm;:指定优先级最高的索引文件是 180918.html,其次是 index.html 和 index.htm。
4.3 PID(历程标识符)
在Nginx的配置和管理中,nginx.conf 和 nginx.service 所涉及的PID(历程标识符)有不同的用途和配置方式。
4.3.1 nginx.conf 中的 PID
在 nginx.conf 文件中,你可以指定一个指令来界说 Nginx 主历程写入其PID的位置。这个指令是 pid。默认环境下,Nginx 的PID文件路径大概取决于操作系统和安装方式,但通常位于 /var/run/nginx.pid 或 /usr/local/nginx/logs/nginx.pid。你可以在 nginx.conf 中通过如下方式自界说PID文件的位置:
这条指令指定了Nginx主历程将它的历程ID写入到哪个文件中。这对于控制Nginx历程(例如发送信号重启或停止服务)非常有用。
4.3.2 nginx.service 中的 PID
nginx.service 文件是 systemd 服务单位文件的一部分,用于界说如何启动和管理Nginx服务。在这个文件中,PIDFile选项用于告诉systemd在哪里找到服务的PID文件。这有助于systemd跟踪服务的状态和历程ID。如果Nginx使用默认的PID文件位置,则 nginx.service 大概包罗如下行:
- [Service]
- PIDFile=/run/nginx.pid
复制代码 这里假设PID文件位于 /run/nginx.pid。如果你在 nginx.conf 中更改了PID文件的位置,确保同样更新 nginx.service 文件中的 PIDFile 路径以保持同等性,这样systemd才气精确地管理和监控Nginx服务。
总之,nginx.conf 中的 pid 指令用于指定Nginx应该将自己的PID写入到哪个文件,而 nginx.service 中的 PIDFile 则告知systemd该去哪里查找此PID文件,以便举行服务管理。调解这两个设置时,请确保它们指向相同的PID文件位置。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |