Windows下Nginx安装、使用

以你之姓@ 2023-01-03 04:16 401阅读 0赞

一、下载Nginx

下载地址:http://nginx.org/en/download.html
下载windos版的直接解压即可

二、启动Nginx的方法

一、直接打开nginx.exe,弹窗会关闭,其实已经启动,在进程中可以看到。

二、打开CMD、切换到nginx解压目录下,执行命令 nginx.exe 或者 start nginx。

三、检查是否启动成功,如果没有修改nginx.conf文件,直接打开浏览器访问http://localhost:80即可,出现以下内容即成功。
在这里插入图片描述

三、关闭Nginx

1、可以直接在进程中关闭。
2、打开CMD,切换到Nginx的目录下,执行命令nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)

四、使用Nginx整合Springboot跨域实现前后端分离

使用Nginx反向代理,可以解决跨域无权和Session丢失的问题,十分方便。

一、找到nginx.conf文件
修改配置文件

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. http {
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. #前端页面服务器
  11. server {
  12. #监听端口和域名
  13. listen 80;
  14. server_name localhost;
  15. #添加头部信息
  16. proxy_set_header Cookie $http_cookie;
  17. proxy_set_header X-Forwarded-Host $host;
  18. proxy_set_header X-Forwarded-Server $host;
  19. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  20. #添加拦截路径和代理地址
  21. location /sys/ {
  22. proxy_pass http://localhost:8080/; #注意:使用代理地址时末尾记得加上斜杠"/"。
  23. }
  24. #添加拦截路径和根目录
  25. location / {
  26. root html/fslayui; #注意:使用"/"拦截全路径的时候记得放在最后。
  27. index index.html index.htm; #index表示首页
  28. }
  29. }
  30. }

二、部署前端文件
可以直接将静态资源(例如前端页面)部署到Nginx的html目录。在Nginx/html目录下创建一个名为fslayui的文件夹,并添加一个页面(index.html)用于跨域访问测试,index页面内容如下:
注意:下面的url地址的IP和端口需要与你nginx.conf配置的server中nginx的域名和端口一致(例如本文配置的是localhost:80),因为你是访问的是Nginx服务器

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8"/>
  5. <title>Page Index</title>
  6. </head>
  7. <body>
  8. <h2></h2>
  9. <p id="test"><p/>
  10. </body>
  11. <script src="js/jquery.js"></script>
  12. <script> $.ajax({ url: 'http://localhost:80/sys/user/login', type: "POST", success: function (data) { $.ajax({ url: 'http://localhost:80/sys/user/login', type: "POST", success: function (data) { $("#test").html("Success:" + data); } }); }, error: function (data) { $("#test").html("跨域失败!!"); } }); </script>
  13. </html>

三、编写Controller访问
注意:后台启动端口需要与nginx.conf中设置的location中的proxy_pass一致。

  1. @SpringBootApplication
  2. @RestController
  3. @RequestMapping("/user/")
  4. public class SpringBootNginxApplication {
  5. //提供验证码
  6. @RequestMapping("login")
  7. public String verifyCode(HttpServletRequest request) {
  8. request.getSession().setAttribute("test", "nginx");
  9. return request.getSession().getId() + ":" + request.getSession().getAttribute("test");
  10. }
  11. public static void main(String[] args) {
  12. SpringApplication.run(SpringBootNginxApplication.class, args);
  13. }
  14. }

四、访问Nginx代理服务器配置的地址

http://localhost:80/index.html

五、Nginx跨域总结

Nginx VS CORS
简单来说,Nginx是间接跨域,而CORS则实现了直接跨域。Nginx的反向代理“欺诈了”浏览器,所以浏览器和服务器都认为是同源访问,所以Session不会丢失。(PS:如果发生跨域访问,服务器会每次都创建新的Session,所以才造成了前后端分离的Session丢失问题。) 至于CORS这种跨域机制的安全性和灵活性更高,但需要自己解决跨域访问Session丢失的问题,通常情况可以采用Session+Redis来实现Session共享。)

本文参考:https://www.cnblogs.com/endv/p/12655866.html
https://www.jianshu.com/p/520021853827

发表评论

表情:
评论列表 (有 0 条评论,401人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Windows安装Nginx

    前言 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第

    相关 Windows安装Nginx

    Nginx nginx是一款开源的HTTP服务器和反向代理服务器,nginx可以作为Web服务器提供HTTP访问功能,类似于Apache、IIS等。目前nginx已经在国