当前位置:首页 > 教程 > 正文内容

nginx维修笔记(nginx故障处理)

2023-07-20 00:50:04教程1

nginx故障处理

1. 使用负载均衡器:如果你使用负载均衡器来分发流量到多个 Nginx 节点,当某个节点挂掉时,负载均衡器可以自动将流量转发到其他正常运行的节点上。这样可以避免用户访问到故障的节点。常见的负载均衡器有 Nginx、HAProxy、F5 等。

2. 使用健康检查:一些负载均衡器支持健康检查功能,它们会定期检查各个节点的可用性。当检测到某个节点不可用时,会自动从负载均衡器的节点列表中移除该节点,确保用户不会再被路由到该节点上。

3. 手动禁用节点:如果没有使用负载均衡器,或者负载均衡器不支持自动检测故障节点,你也可以手动禁用故障节点。可以在 Nginx 的配置文件中注释掉或删除故障节点的相关配置,然后重新加载配置文件,使得用户无法再访问到故障节点。

无论采取哪种方式,及时检测和禁用故障节点都是保障服务可用性的重要手段。另外,为了实现高可用性,在部署 Nginx 时可以考虑使用多个节点来提供冗余和负载均衡。

nginx help

想要搭建个人网站,就需要有单独的服务器,就在阿里云购买了台服务器,选择系统为“Ubuntu 14.04.5 LTS”,并在阿里云买了个域名(域名是为了方便记忆,否则输入ip地址访问网站很不方便),下面就使用Ubuntu系统搭建WordPress个人网站。

安装WordPress运行环境

1.安装Mysql数据库

apt update

apt upgrade

apt install mysql-server

查看mysql是否安装成功:

root@iZ2zeeg42qkecbhciml4pcZ:~# mysql --version

mysql Ver 14.14 Distrib 5.5.62, for debian-linux-gnu (x86_64) using readline 6.3

2.安装PHP

apt-get install software-properties-common

add-apt-repository ppa:ondrej/php

apt update

apt install php7.2

apt install libapache2-mod-php7.2

apt install php7.2-mysql

apt install php7.2-fpm

查看php是否安装成功:

root@iZ2zeeg42qkecbhciml4pcZ:~# php -v

PHP 7.2.16-1+ubuntu14.04.1+deb.sury.org+1 (cli) (built: Mar 7 2019 20:42:24) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

with Zend OPcache v7.2.16-1+ubuntu14.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

3.安装Nginx

install nginx

查看Nginx是否安装成功:

root@iZ2zeeg42qkecbhciml4pcZ:~# nginx -v

nginx version: nginx/1.4.6 (Ubuntu)

重启Nginx后,在浏览器中输入http://阿里云服务器外网IP地址/

service nginx stop

service nginx start

如果图片显示为下图,说明阿里云服务器自动启动了apache2的服务,apache2和nginx都使用80端口,80端口冲突。

关闭apache2的服务

重启php7.2-fpm服务和Nginx服务:

在浏览器中输入http://阿里云服务器外网IP地址/

安装WordPress及其配置

1.Mysql创建数据库和用户:

root@iZ2zeeg42qkecbhciml4pcZ:~# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 44

Server version: 5.5.62-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database 数据库名称 character set utf8 collate utf8_general_ci;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on 数据库名称.* to '用户名'@localhost identified by '用户密码';

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

root@iZ2zeeg42qkecbhciml4pcZ:~#

2.下载WordPress并安装:

获取WordPress软件:点击此处

将下载的wordpress-5.0.3-

zh_CN.tar.gz

上传到云服务器上

安装wordPress:

root@iZ2zeeg42qkecbhciml4pcZ:~# ls

wordpress-5.0.3-zh_CN.tar.gz

root@iZ2zeeg42qkecbhciml4pcZ:~# mv wordpress-5.0.3-zh_CN.tar.gz /var/www/

root@iZ2zeeg42qkecbhciml4pcZ:~# cd /var/www/

root@iZ2zeeg42qkecbhciml4pcZ:/var/www# ls

html wordpress-5.0.3-zh_CN.tar.gz

root@iZ2zeeg42qkecbhciml4pcZ:/var/www# tar -zxvf wordpress-5.0.3-zh_CN.tar.gz

......

root@iZ2zeeg42qkecbhciml4pcZ:/var/www# ls

html wordpress wordpress-5.0.3-zh_CN.tar.gz

root@iZ2zeeg42qkecbhciml4pcZ:/var/www# cd wordpress/

root@iZ2zeeg42qkecbhciml4pcZ:/var/www/wordpress# ls

index.php readme.html wp-admin wp-comments-post.php wp-content wp-includes wp-load.php wp-

mail.php

wp-signup.php xmlrpc.php

license.txt

wp-activate.php wp-blog-header.php wp-config-sample.php wp-cron.php wp-links-opml.php wp-login.php wp-settings.php wp-trackback.php

root@iZ2zeeg42qkecbhciml4pcZ:/var/www/wordpress# mv wp-config-sample.php wp-

config.php

使用vim命令编辑wp-config.php:

vim wp-config.php

修改文件中的数据库配置信息,填写刚才创建的数据库信息:

/** WordPress数据库的名称 */

define('DB_NAME', '数据库名称');

/** MySQL数据库用户名 */

define('DB_USER', '用户名');

/** MySQL数据库密码 */

define('DB_PASSWORD', '数据库密码');

/**

* WordPress数据表前缀。

*

* 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置

* 不同的数据表前缀。前缀名只能为数字、字母加下划线。

*/

$table_prefix = 'wp_';

在阿里云控制台将域名解析到指定的服务器上:

控制台->域名->解析->添加纪录

配置服务安全组策略,将80(http)端口和443(https)端口开放:

控制台->云服务器ECS->网络和安全->安全组->配置规则

配置80端口:

配置443端口:

配置后查看内容:

编辑Nginx配置文件:/etc/nginx/sites-available/default

client_max_body_size 10m;

server {

listen 80;

listen [::]:80;

server_name localhost; #你的域名

root /var/www/wordpress;

index index.php index.html index.htm index.nginx-debian.html;

location / {

# First attempt to serve request as file, then

# as directory, then fall back to displaying a 404.

#try_files $uri $uri/ =404;

try_files $uri $uri/ /index.php?$args;

}

location ~ \.php$ {

# include fastcgi.conf;

include fastcgi_params;

fastcgi_buffer_size 128k;

fastcgi_buffers 32 32k;

#fastcgi_intercept_errors on;

# With php-fpm (or other unix sockets):

fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;

# With php-cgi (or other tcp sockets):

#fastcgi_pass 127.0.0.1:9000;

}

}

重启Nginx后,在浏览器中输入http://阿里云服务器外网IP地址/

service nginx stop

service nginx start

在浏览器中访问自己的域名,查看是否成功:

到此WordPress就安装成功了,你可以自行配制您的网站信息。

nginx常见问题

在开发静态页面时,类似Vue的应用,我们常会调用一些接口,这些接口极可能是跨域,然后浏览器就会报cross-origin问题不给调。

最简单的解决方法,就是把浏览器设为忽略安全问题,设置--disable-web-security。不过这种方式开发PC页面到还好,如果是移动端页面就不行了。

解决办法

使用Nginx转发请求。把跨域的接口写成调本域的接口,然后将这些接口转发到真正的请求地址。

其实不仅是在开发调试时候能这么干,在生产环境也能这么玩。利用Nginx转发请求之后,就能够让所要部署的静态页面不需要放在跟请求接口同域的地方。

nginx bug

nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能

高度模块化的设计,编写模块相对简单

社区活跃,各种高性能模块出品迅速啊 。

apache 相对于nginx 的优点:

rewrite ,比nginx 的rewrite 强大 。

模块超多,基本想到的都可以找到 。

少bug ,nginx 的bug 相对较多 ,超稳定 。

最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

nginx解决方案

nginx非常适合这一点,因为它提供了方便卸载并发,延迟处理,SSL(安全套接字层),静态内容,压缩和缓存,连接和请求限制,甚至来自应用程序的HTTP媒体流所需的关键功能层到更有效的边缘Web服务器层。它还允许直接与memcached / Redis或其他“NoSQL”解决方案集成,以在为大量并发用户提供服务时提高性能。

随着最近开发套件和编程语言的广泛使用,越来越多的公司正在改变他们的应用程序开发和部署习惯。nginx已成为这些不断变化的范例中最重要的组成部分之一,它已经帮助许多公司在预算范围内快速启动和开发其Web服务。

nginx的第一行是在2002年编写的。2004年,它根据双条款BSD许可证向公众发布。从那时起,nginx用户的数量一直在增长,提供想法,并提交对整个社区非常有帮助和有益的错误报告,建议和观察。

nginx代码库是原创的,完全是用C编程语言从头开始编写的。nginx已被移植到许多架构和操作系统,包括Linux,FreeBSD,Solaris,Mac OS X,AIX和Microsoft Windows。nginx有自己的库,其标准模块除了zlib,PCRE和OpenSSL之外不会超出系统的C库,除非zlib,PCRE和OpenSSL可以选择从构建中排除,如果不需要或者由于潜在的许可证冲突。

nginx 维护页面

1. 代码编写:前端开发人员编写和测试代码,确保代码的功能和质量符合需求。

2. 代码托管:将代码提交到代码托管平台,如Git、SVN等。

3. 版本管理:在代码托管平台上进行版本管理,保证不同版本的代码可以被追踪和管理。

4. 自动化构建:使用自动化构建工具(如Webpack、Gulp、Grunt等)将代码进行打包、压缩、优化等处理,生成可部署的静态资源文件。

5. 部署到测试环境:将静态资源文件部署到测试环境中,进行功能测试和性能测试。

6. 修复问题:根据测试结果,修复代码中的问题和Bug。

7. 再次构建:重新使用自动化构建工具生成静态资源文件。

8. 部署到生产环境:将修复后的静态资源文件部署到生产环境中,发布新版本。

9. 测试新版本:对新发布的版本进行测试,确认没有问题后上线。

10. 监控和维护:对上线后的系统进行监控和维护,及时处理出现的问题。

以上是前端部署和发布流程中的主要步骤,具体的流程可能会因为公司或者项目的不同而有所差异。在实践过程中,可以根据项目需要和实际情况,进行适当的调整和改进。

nginx维护

Nginx是由Nginx Inc.(前身为NGINX Software)开发和维护的产品。Nginx Inc.是一家总部位于美国的公司,专注于为企业和组织提供高性能的Web服务器和负载均衡软件。

Nginx最初由俄罗斯工程师Igor Sysoev开发,并于2004年首次发布。Nginx的设计目标是提供高性能、高可靠性和可伸缩性,以处理大量的同时连接和高流量的网络请求。最初,Nginx主要作为Web服务器来处理静态内容,但后来还发展出成为反向代理服务器和负载均衡器等功能。

由于其出色的性能和稳定性,Nginx迅速在全球范围内获得了广泛的应用,并成为许多大型网站、应用和企业的首选服务器软件。Nginx Inc.在不断开发和改进Nginx产品,并提供商业许可和技术支持服务,以满足用户的需求。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98904569.html