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

nginx官方最新版本(nginx/1.21.0)

2023-03-17 08:10:05教程1

nginx官方最新版本

当然区分Windows版和Linux版咯,Nginx的Windows版本是移植版,它最开始发布的是在Linux/Unix系统上运行的,Windows版本是移植过来的(Nginx有自己的函数库,调用的第三方库非常少),所以它是有这个不同版本的区分的。

nginx/1.21.0

端口号的范围是从1~65535。

其中1~1024是被RFC 3232规定好了的,被称作“众所周知的端口”(Well Known Ports);从1025~65535的端口被称为动态端口(Dynamic Ports),可用来建立与其它主机的会话,也可由用户自定义用途。

一些常见的端口号及其用途如下:

21端口:FTP 文件传输服务

22端口:SSH 远程连接服务

23端口:TELNET 终端仿真服务

25端口:SMTP 简单邮件传输服务

53端口:DNS 域名解析服务

80端口:HTTP 超文本传输服务

443端口:HTTPS 加密的超文本传输服务

3306端口:MYSQL数据库端口

5432端口:postgresql数据库端口

6379端口:Redis数据库端口

8080端口:TCP服务端默认端口

8888端口:Nginx服务器的端口

9200端口:Elasticsearch服务器端口

27017端口:mongoDB数据库默认端口

22122端口:fastdfs服务器默认端口

nginx/1.8.0

nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx来进行内网mysql的访问。

实验环境

nginx1.12.1 : 192.168.1.19

mysql : 192.168.1.20:3306

1:编译或者升级nginx至版本1.9.0以上,编译过程中需带上--with-stream。

# ./configure --prefix=/opt/apps/nginx --with-stream

# make && make install

2:配置stream,定义代理192.168.1.20的3306端口映射为端口2333。

# vi /opt/apps/nginx/conf/nginx.conf

……

……

events {

use epoll;

worker_connections 65535;

}

#stream配置

stream {

server {

listen 2333;

proxy_connect_timeout 1s;

proxy_timeout 3s;

proxy_pass 192.168.1.20:3306;

}

}

http {

……

……

}

3:开启nginx,验证代理是否生效。

image.png

可以看到我们现在可以通过nginx代理的端口访问到内网的mysql服务了。这也直接避免了mysql直接暴露到公网,增加些许的安全。当然,利用stream也可以实现后端服务的负载均衡。

nginx/1.19.0

yum安装一般在 /usr/share/nginx/html/

源码安装一般在/usr/local/nginx/html8 19.8 18-19

nginx/1.17.10

nginx添加模块用add的方法可以添加指定模块,,重新编译时候,使用–add-module=/root/nginx-push-stream-module指定添加模块。我的新下载的模块是存放在服务器上的/root/下的。

只使用make进行编译,把编译好的在objs的nginx替换掉原来的/usr/local/nginx/sbin/nginx,在进行覆盖的时候如果此时出现文件忙的情况。处理的方法是短暂的关闭nginx,覆盖完之后在开启,验证。

随后就可以使用with函数,方法是[root@iZ255gvcfkuZ objs]# nginx -V,nginx version: nginx/1.17.3,built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ,built with OpenSSL 1.0.2k-fips 26 Jan 2017,TLS SNI support enabled,configure.arguments:prefix=/usr/local/nginx.with.http_ssl_module.with.http_v2_module。

nginx/1.17.6

一、由于启动用户和nginx工作用户不一致所致

1.1查看nginx的启动用户,发现是nobody,而为是用root启动的

命令:ps aux | grep "nginx: worker process" | awk'{print $1}'

1.2将nginx.config的user改为和启动用户一致,

命令:vi conf/nginx.conf

二、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。

1. server {

2. listen 80;

3. server_name localhost;

4. index index.php index.html;

5. root /data/www/;

6. }

如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。

三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。

解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

1. chmod -R 777 /data

2. chmod -R 777 /data/www/

四、SELinux设置为开启状态(enabled)的原因。

4.1、查看当前selinux的状态。

1. /usr/sbin/sestatus

4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

1. vi /etc/selinux/config

2.

3. #SELINUX=enforcing

4. SELINUX=disabled

4.3、重启生效。reboot。

1. reboot

重启php以及nginx

killall php-fpm && php-fpm &

nginx -s reload

nginx最新稳定版

1、二者最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程 。nginx处理静态文件好,耗费内存少.但无疑apache仍然是目前的主流,有很多丰富的特性.所以还需要搭配着来.当然如果能确定nginx就适合需求,那么使用nginx会是更经济的方式。

2、nginx的负载能力比apache高很多。最新的服务器也改用nginx了。而且nginx改完配置能-t测试一下配置有没 有问题。

3、apache重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端nginx抗并发,后端apache集群, 配合的也不错。

4、nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。

5、从经验来看,nginx是很不错的前端服务器,负载性能很好,nginx,用webbench模拟10000个静态文件请求毫不吃力。 apache对php等语言的支持很好,此外apache有强大的支持网络,发展时间相对nginx更久,bug少但是apache有先天不支持多核心处理负载鸡肋的缺点,建议使用nginx做前端,后端用apache。大型网站建议用nginx自代的集群功能。

6、大部分情况下nginx都优于APACHE,比如说静态文件处理、PHP-CGI的支持、反向代理功能、前端 Cache、维持连接等等。在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache进程数 飙升,从而拒绝服务的现象。

7、Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache吧!

8、一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。

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

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