【linux服务器基础环境配置1】-Ngnix篇

Nginx是一款高性能的开源Web服务器,常用于处理静态内容和反向代理,能有效实现负载均衡和HTTP缓存。文章介绍了Nginx的基本概念、主要功能,包括Web服务器、反向代理、负载均衡等,并提供了在CentOS7.5上的安装步骤,以及正向代理和反向代理的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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有以下几个主要功能:

  1. Web服务器:可以将网站的文件和数据传输给用户的浏览器,让用户能够访问网站。
  2. 反向代理:可以将用户的请求转发到其他服务器上,比如将请求转发到Tomcat服务器上处理,让Tomcat服务器来提供服务。
  3. 负载均衡:可以将用户的请求分配给多个服务器处理,让多个服务器来共同处理请求,从而提高系统的性能和可靠性。
  4. HTTP缓存:可以将网站的静态资源(如图片、CSS、JS等)缓存到内存中或磁盘中,让用户在再次访问同一资源时能够更快地获取到资源,从而提高网站的访问速度。

3.安装ngnix

以下是在CentOS 7.5上安装nginx的步骤:

  1. 更新系统:
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的二进制可执行文件等。

<think>嗯,用户想在Linux服务器上用Nginx部署两个网页。首先,我得考虑怎么配置两个实例或者在一个实例里设置多个服务。记得之前看过可以安装两个Nginx,每个用同的端口,或者用虚拟主机在一个配置里处理多个站点。 用户提供的引用里提到安装两个Nginx实例,需要同的安装路径和配置文件。比如第一个在/usr/local/nginx,第二个用--prefix指定到nginx2,同时修改conf-path和pid-path。这样两个实例会冲突。但这样可能占用更多资源,管理起来也麻烦,得分别启动服务。 另一个方法是使用同一个Nginx,通过配置多个server块,也就是虚拟主机。这样更高效,只需要一个Nginx进程,通过同的server_name或端口来区分。比如一个用80端口,另一个用8080,或者用域名区分。用户可能没有域名,所以用端口更实际。 然后,步骤应该是先安装Nginx,如果已经有一个了,可能需要检查是否支持虚拟主机。然后修改nginx.conf,在http块里添加两个server块,每个指定同的root目录和端口。比如第一个监听80,root在/var/www/site1;第二个监听8080,root在/var/www/site2。创建这两个目录,放index.html进去。测试配置,重启服务。防火墙要放行这两个端口,用curl或者浏览器访问测试。 用户的问题可能涉及权限,比如是否能用80端口需要sudo。或者想用相同的端口但同域名,那需要配置server_name,并且有域名解析。但用户可能没有,所以用端口更简单。另外,SELinux或防火墙设置可能会阻止访问,需要处理。 还要考虑是否需要两个完全隔离的配置,比如同的模块或日志路径,这时候分开实例更好。但大部分情况下,虚拟主机足够。用户引用的资料里提到了两种方法,所以回答中应该都提到,并说明各自的适用场景。 最后,生成相关问题,比如如何配置SSL,负载均衡,或者优化性能。确保步骤清晰,用户能一步步跟着做,避免出错。</think>### 分步配置指南:通过Nginx部署两个网页 在Linux服务器上部署两个网页,可通过以下两种方式实现: --- #### **方法一:配置Nginx实例(虚拟主机模式)** 1. **创建网页目录** ```bash sudo mkdir -p /var/www/site1 /var/www/site2 echo "Site1 Content" | sudo tee /var/www/site1/index.html echo "Site2 Content" | sudo tee /var/www/site2/index.html ``` 2. **编辑Nginx配置文件** 打开`/usr/local/nginx/conf/nginx.conf`,在`http`块内添加两个`server`块: ```nginx http { server { listen 80; server_name site1.local; root /var/www/site1; index index.html; } server { listen 8080; server_name site2.local; root /var/www/site2; index index.html; } } ``` 3. **验证并重启服务** ```bash sudo nginx -t # 检查语法 sudo systemctl restart nginx ``` 4. **测试访问** - 通过浏览器访问`http://服务器IP:80`和`http://服务器IP:8080` - 或使用命令行: ```bash curl http://localhost:80 && curl http://localhost:8080 ``` --- #### **方法二:部署双Nginx实例(隔离环境)** 1. **编译安装第二个Nginx实例** ```bash wget http://nginx.org/download/nginx-1.25.1.tar.gz tar -zxvf nginx-1.25.1.tar.gz cd nginx-1.25.1 ./configure --prefix=/usr/local/nginx2 --conf-path=/usr/local/nginx2/conf/nginx.conf --pid-path=/usr/local/nginx2/nginx.pid make && sudo make install ``` 2. **配置独立服务文件** 创建`/etc/systemd/system/nginx2.service`: ```ini [Unit] Description=The NGINX2 HTTP server After=network.target [Service] Type=forking PIDFile=/usr/local/nginx2/nginx.pid ExecStartPre=/usr/local/nginx2/sbin/nginx -t ExecStart=/usr/local/nginx2/sbin/nginx ExecReload=/usr/local/nginx2/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID [Install] WantedBy=multi-user.target ``` 3. **启动双实例** ```bash sudo systemctl start nginx # 原实例 sudo systemctl start nginx2 # 新实例 ``` --- #### **关键差异对比** | 特性 | 单实例虚拟主机 | 双实例隔离部署 | |---------------------|----------------------------------|----------------------------| | **资源占用** | 共享进程,内存占用低 | 独立进程,资源消耗翻倍 | | **配置复杂度** | 修改同一文件,需注意块冲突 | 完全隔离,避免配置污染 | | **适用场景** | 同域名多子站/端口分流 | 需同版本Nginx或模块组合 | ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值