服务器配置实战:从 “密码锁” 到 “分工协作” 的知识点详解

发布于:2025-08-14 ⋅ 阅读:(18) ⋅ 点赞:(0)

配置基本认证:给网站目录加 “密码锁”

  • 基本认证就像给你的私人储物柜加了一把锁,只有输入正确的用户名和密码才能打开。这在需要限制访问的场景(如后台管理页)非常有用。

 #安装htpasswd工具(生成密码文件的工具)
 [root@server ~ 09:21:54]# yum -y install httpd-tools
 #配置 Nginx 的密码保护规则
 [root@server ~ 09:22:11]# vim /etc/nginx/conf.d/ssl.conf
 =============================================================================
 server {
     location /auth-basic/ {# 对/auth-basic/目录启用保护
         auth_basic            "Basic Auth";# 弹出的密码框提示文字(相当于锁上的提示:“请输入密码”)
         auth_basic_user_file  "/etc/nginx/.htpasswd";# 密码文件路径(钥匙对应的密码本)
     }
 }
 =============================================================================
 ​
 [root@server ~ 09:26:15]# systemctl restart nginx
 ​
 #生成密码文件
 [root@server ~ 09:26:26]# htpasswd -c /etc/nginx/.htpasswd lyk
 New password: 
 Re-type new password: 
 Adding password for user lyk
 ​
 #创建测试目录和页面
 [root@server ~ 09:26:41]# mkdir /usr/share/nginx/html/auth-basic
 [root@server ~ 09:26:51]# vim /usr/share/nginx/html/auth-basic/index.html
 =============================================================================
 <html>
 <head><title>401 Authorization Required</title></head>
 <body>
 <center><h1>401 Authorization Required</h1></center>
 <hr><center>nginx/1.20.1</center>
 </body>
 </html>
 =============================================================================
 #vim添加地址才能crul , 配置域名映射(避免访问失败)
 [root@server nginx 09:48:09]# vim /etc/hosts
 10.1.8.10 www.lyk.cloud
 ​
 # 测试密码保护效果
 [root@server nginx 09:46:41]# curl http://www.lyk.cloud/auth-basic/
 <html>
 <head><title>401 Authorization Required</title></head>
 <body>
 <center><h1>401 Authorization Required</h1></center>
 <hr><center>nginx/1.20.1</center>
 </body>
 </html>
 ​

支持动态脚本

  • 静态内容(HTML、图片)Nginx 能直接处理,但动态内容(PHP 脚本)需要 “后厨”(PHP 解释器)处理。这一步是让 Nginx 和 PHP 配合工作。

 [root@server ~ 10:09:51]# yum install -y php php-fpm
 [root@server ~ 10:10:14]#  yum install -y php-gd php-common php-pear php-mbstring php-mcrypt
 ​
 #测试 PHP 是否能正常工作
 [root@server ~ 10:10:32]# php -v
 [root@server ~ 10:25:48]# echo "<?php echo 'PHP Test Page'.\"\n\"; ?>" > php_test.php 
 [root@server ~ 10:26:03]# php php_test.php 
 PHP Test Page
 ​
 #创建 Web 可访问的 PHP 页面
 [root@server ~ 10:26:08]# echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php 
 ​
 -作用:把 PHP 脚本放到 Nginx 的网页目录,让用户能通过浏览器访问。
 ​
 [root@server ~ 10:26:46]# vim /etc/nginx/nginx.conf
   ============================================================================= 
         location ~ \.php$ {
         try_files $uri =404;
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
         }
    =============================================================================
 #显示下载文件错误
 [root@server ~ 10:28:45]# curl http://www.lyk.cloud/info.php
 <?php phpinfo(); ?>
 ​
 # 修复 “下载文件” 错误
 [root@server ~ 10:54:31]# vim /etc/nginx/nginx.conf
 =============================================================================
 #vim添加地址:
      server_name  www.lyk.cloud;
 =============================================================================
 [root@server ~ 10:36:57]# systemctl status php-fpm
 [root@server ~ 10:36:57]# systemctl enable php-fpm
 [root@server ~ 10:41:02]# systemctl restart nginx
 ​
 #显示网页正确
 [root@server ~ 10:54:31]# curl http://www.lyk.cloud/info.php
 ​

Tomcat 部署(java)

 #安装 Tomcat 和验证 Java 环境
 [root@server webapps 11:15:13]# yum install -y tomcat
 [root@server ~ 11:10:10]# java -version
 openjdk version "1.8.0_412"
 ​
 [root@server ~ 11:10:22]# systemctl enable --now tomcat.service
 Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
 ​
 #创建 JSP 测试页面
 [root@server ~ 11:10:26]#  cd /var/lib/tomcat/webapps/
 [root@server webapps 11:13:13]# mkdir test
 ​
 [root@server webapps 11:13:20]# vim test/index.jsp
 =============================================================================
 <html>
     <head>
            <title>第一个 JSP 程序</title>
     </head>
     <body>
            <%
                   out.println("Hello World!");
            %>
     </body>
 </html>
 =============================================================================
 #测试 Tomcat 是否工作
 [root@server webapps 11:14:33]# curl http://www.lyk.cloud:8080/test/index.jsp
 =============================================================================
 <html>
     <head>
            <title>第一个 JSP 程序</title>
     </head>
     <body>
            Hello World!
 ​
     </body>
 </html>
 =============================================================================

Ngnix+Tomcat动静分离

  • 动静分离是让 Nginx 处理静态内容(HTML、图片),Tomcat 处理动态内容(JSP),提高效率(就像前台直接给现成小吃,复杂菜品交给专门后厨)。

  • server 作为tomcat 服务器(Java 后厨,处理动态内容)

  • client 作为nginx反向代理(前台,转发请求 + 处理静态内容)

 #在 client(Nginx 服务器)安装 Nginx
 [root@client ~ 11:28:47]# yum install -y nginx
 ​
 #配置 Nginx 反向代理 Tomcat
 [root@client ~ 11:28:47]# vim /etc/nginx/nginx.conf
 ​
  upstream tomcat {
         server www.lyk.cloud:8080;# Tomcat服务器的地址和端口(Java后厨的位置)
     }
     
     
     server {# 在server块中添加动态请求转发规则
     
 ......
 ​
 location /tomcat/ {# 访问/tomcat/路径时
             proxy_pass http://tomcat/;# 转发给upstream定义的Tomcat服务器(把订单转给Java后厨)
           }
        
        
     }
 ​
 #配置域名映射(让 client 认识 Tomcat 服务器)
 [root@client ~ 11:33:56]# vim /etc/hosts
 10.1.8.10 www.lyk.cloud www
 ​
 upstream tomcat {
         server 10.1.8.10:8080;
     }
     x.
 [root@client ~ 11:40:10]# systemctl restart nginx.service 
 ​
 # 创建静态内容目录(前台自己处理的内容)
 [root@client ~ 11:40:22]# mkdir /usr/share/nginx/html/web1
 [root@client ~ 11:42:15]# mkdir /usr/share/nginx/html/web2
 [root@client ~ 11:41:19]# echo hello w111 > /usr/share/nginx/html/web1/index.html
 [root@client ~ 11:41:59]# echo hello w222 > /usr/share/nginx/html/web2/index.html
 [root@client ~ 11:42:20]# systemctl restart nginx.service
 ​

效果:静态内容由 Nginx 快速返回,动态内容由 Tomcat 处理后返回,分工明确效率高

 #测试动静分离效果
 http://www.lyk.cloud
 http://www.lyk.cloud/web1
 http://www.lyk.cloud/tomcat/test/index.jsp

网站公告

今日签到

点亮在社区的每一天
去签到