web应用服务器软件
比如,你现在要部署一个网址,需要web浏览器去访问。
凡是通过web浏览器访问的网址,都需要在服务器先部署一个web应用服务器软件(ngnix,apache,tomcat)
这三巨头,里面必须你要选择一个,或者一个以上。
ps:如果不配置这些web应用服务器软件,直接通过浏览器去访问,是无法访问的。
Nginx知识
1.ngnix的介绍:
nginx是一款高性能的开源Web服务器软件,也可以用作反向代理、负载均衡和HTTP缓存等。它采用事件驱动的异步架构,能够同时处理大量的并发连接,具有非常高的并发处理能力和稳定性。nginx还支持动态模块化扩展,可以通过第三方模块实现各种功能,如SSL/TLS加密、HTTP2协议、WebSocket、FastCGI、Lua脚本等。由于其高效、灵活和可靠的特性,nginx已经成为Web应用服务器领域的主流选择之一。
通俗的理解:
nginx是一种软件,就像你在电脑上安装的QQ、微信一样。但不同的是,它是一种用于网站和应用程序的软件,可以帮助网站和应用程序更快地响应用户请求。就像你去饭店吃饭,如果有一个很好的服务员,他可以快速地为你点菜、上菜,让你不用等很久,感觉很舒服一样。而且,nginx还可以帮助网站和应用程序处理更多的并发请求,就像一个饭店里有更多的服务员,可以同时为更多的客人服务一样。这样,用户就可以更快地访问网站或使用应用程序,提高了用户体验。
同时,ngnix也是一个中间件
2.ngnix的主要功能:
nginx有以下几个主要功能:
- Web服务器:可以将网站的文件和数据传输给用户的浏览器,让用户能够访问网站。
- 反向代理:可以将用户的请求转发到其他服务器上,比如将请求转发到Tomcat服务器上处理,让Tomcat服务器来提供服务。
- 负载均衡:可以将用户的请求分配给多个服务器处理,让多个服务器来共同处理请求,从而提高系统的性能和可靠性。
- HTTP缓存:可以将网站的静态资源(如图片、CSS、JS等)缓存到内存中或磁盘中,让用户在再次访问同一资源时能够更快地获取到资源,从而提高网站的访问速度。
3.安装ngnix
以下是在CentOS 7.5上安装nginx的步骤:
- 更新系统:
yum update
2.安装epel-release:
//通过安装EPEL源,我们可以很方便地安装redis,ngnix这些这些软件包,从而扩展系统的功能和性能。
//如果已经安装好了,就没必要再装了
yum install epel-release
3.安装nginx:
yum install nginx
4.启动nginx:
systemctl start nginx
5.设置nginx开机启动:
systemctl enable nginx
6.配置防火墙,允许HTTP和HTTPS访问:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
//配置好后要重载一下
sudo firewall-cmd --reload
ps:
如果防火墙提示未启动,那么需要先启动防火墙
启动防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
检查防火墙状态:systemctl status firewalld
安装完成后,可以通过访问服务器的IP地址或域名来测试nginx是否正常工作。
默认情况下,nginx的网站根目录为/usr/share/nginx/html
。
如果访问不了,记得检查下云服务器的80端口是否开放
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uVaNhFpI-1684218047536)(C:\Users\86189\Desktop\assets\image-20230512165134117.png)]
4.ngnix的正向代理跟反向代理的区别?
正向代理和反向代理的区别在于他们的工作方式和位置不同。
正向代理是客户端通过代理服务器访问目标服务器的方式,代理服务器在客户端和目标服务器之间充当一个中转站的角色,客户端向代理服务器发送请求,代理服务器再将请求发送给目标服务器,目标服务器将响应发送给代理服务器,代理服务器再将响应发送给客户端。正向代理隐藏了客户端的真实IP地址,保护了客户端的隐私,同时可以提高访问目标服务器的速度,减轻目标服务器的压力。例如,你在公司访问某个网站时,公司可能会设置一个代理服务器,你的请求会先发送给代理服务器,代理服务器再将请求发送给目标网站,目标网站返回的响应也会先发送给代理服务器,代理服务器再将响应发送给你的电脑。
反向代理则是目标服务器通过代理服务器向客户端提供服务的方式,代理服务器在目标服务器和客户端之间充当一个中转站的角色,客户端向代理服务器发送请求,代理服务器将请求发送给目标服务器,目标服务器将响应发送给代理服务器,代理服务器再将响应发送给客户端。反向代理隐藏了目标服务器的真实IP地址,保护了服务器的安全,同时可以提高响应速度和稳定性,减轻目标服务器的负载压力。例如,当你访问某个网站时,你的请求会先发送给反向代理服务器,反向代理服务器会将请求转发给多个目标服务器中的一个来处理,然后将响应发送给你的电脑。
正向代理,是隐藏掉了客户端的ip信息,保护了客户端隐私,为了提升性能
反向代理,是隐藏掉了服务器的ip信息,保护服务器的安全,同时大大的提高了响应速度
日常的工作里面,配置反向代理的比较多
5.如何配置代理
1.绝大多数软件的配置文件,都是以conf结尾的文件
2.在服务器上,大多数的软件的配置文件,存放在/etc目录下
nginx的配置文件是nginx.conf
,通常位于/etc/nginx/
目录下。
你可以通过编辑这个文件来进行nginx的配置。具体步骤如下:
打开nginx.conf
文件:
sudo vim /etc/nginx/nginx.conf
找到http
块,这个块包含了所有的HTTP配置:
http {
...
}
在http
块中添加一个server
块,这个块包含了一个虚拟主机的配置:
http {
server {
...
}
}
在server
块中添加具体的配置,如正向代理或反向代理的配置示例中的内容。
保存并退出nginx.conf
文件。
检查nginx配置是否正确:
sudo nginx -t
如果配置正确,会输出nginx: configuration file /etc/nginx/nginx.conf test is successful
。
重启nginx服务:
sudo systemctl restart nginx
这样就完成了nginx的配置。
需要注意的是,如果你修改了nginx.conf
文件,需要重启nginx服务才能使配置生效。
6.配置案例:
要配置nginx作为正向代理或反向代理,需要进行不同的配置。以下是简单的配置示例:
他们是在同一个文件里面配置
nginx.conf
6.1正向代理配置:
http {
server {
listen 80;
server_name proxy.example.com;
location / {
proxy_pass http://upstream_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
这个配置将nginx配置为一个正向代理服务器,监听80端口,当有请求到达时,将请求转发到名为upstream_server的服务器上,同时将请求头中的Host和X-Real-IP字段设置为客户端的值。
6.2 反向代理配置:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
这个配置将nginx配置为一个反向代理服务器,监听80端口,当有请求到达时,将请求转发到名为backend的服务器集群上,这个集群包含了两台服务器backend1.example.com和backend2.example.com。同时将请求头中的Host和X-Real-IP字段设置为客户端的值。
需要注意的是,这只是简单的示例配置,实际的配置需要根据具体情况进行调整。你需要了解nginx的配置语法和相关指令的含义,才能正确地配置nginx作为正向代理或反向代理。
7.Nginx安装目录
Nginx的安装目录默认文件在/usr/local/nginx
。在这个目录下有一些重要的文件和目录,如下所示:
conf
目录:存储Nginx的配置文件。html
目录:存储Nginx的默认网页文件。logs
目录:存储Nginx的日志文件。sbin
目录:存储Nginx的可执行文件。
在conf
目录中,有两个重要的文件:
nginx.conf
:Nginx的主配置文件,包含了所有Nginx服务器的配置信息。mime.types
:Nginx的MIME类型配置文件,指定了Nginx可以处理的文件类型及其对应的Content-Type。
除了这些文件和目录,还有一些其他的文件和目录,例如Nginx的模块文件和Nginx的二进制可执行文件等。