Nginx服务器使用方法_nginx 启动后测试

31 阅读6分钟

img img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

了解详情》docs.qq.com/doc/DSlVlZExWQ0FRSE9H

nginx 002 1024x656 - Windows安装Nginx

3、启动Nginx

接下来,我们启动Nginx,验证服务是否成功开启.。双击根目录下的nginx.exe,双击后一个黑色的弹窗一闪而过就消失了,启动就完成了。

然后我们访问40端口,看到Nginx服务已经成功运行了。

nginx 003 1024x590 - Windows安装Nginx

如果需要停止Nginx,可以输入命令:

#停止Nginx
nginx -s stop
#有序退出Nginx
nginx -s quit
#杀死Nginx任务
taskkill /f /t /im nginx.exe

二、Nignx服务器发布项目

1、安装Nginx

参考我之前写过的文章:Windows安装Nginx

2、配置Nginx

我们这里要配置Nginx\conf\nginx.conf文件。
listen:监听的端口;
(监听端口需要避免占用,尤其是win-server,需要关闭IIS在80端口的默认项目)
server_name:监听的域名(填写localhost即为公网IP);
location里proxy_pass:设置转发的目标地址;

server {
        listen       80;
        server_name  image.damon-liu.cn;
 
        location / {
            root C:/Damon/images;
        }
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

这里给出的例子的意思是:当收到对image.damon-liu.cn域名的http请求访问时,转发请求到我们的C:/Damon/images文件夹。

3、HTTPS请求的访问配置

和http请求访问的处理方式类似,https请求访问我们需要监听443端口,同时给域名配置ssl证书(即配置crt证书文件和key密钥文件的路径)
为此,我们需要添加配置:

server {
        #SSL 默认访问端口号为 443
        listen 443 ssl;
        #请填写绑定证书的域名
        server_name  image.damon-liu.cn;
        #请填写证书文件的相对路径或绝对路径
        ssl_certificate ../ssl/damonimage/image.damon-liu.cn_bundle.crt; 
        #请填写私钥文件的相对路径或绝对路径
        ssl_certificate_key ../ssl/damonimage/image.damon-liu.cn.key; 
        ssl_session_timeout 5m;
        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #请按照以下协议配置
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on; 
 
        location / {
            root C:/Damon/images;
        }
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

这里给出的例子的意思是:当收到对image.damon-liu.cn域名的https请求访问时,转发请求到我们的C:/Damon/images文件夹。

4、实现强制HTTPS请求

实际使用场景中,用户不一定会使用https协议访问,这时候我们可以统一请求方式,将http请求统一转发为https请求。
为此,我们需要添加配置:

server {
 listen 80;
 #请填写绑定证书的域名
 server_name image.damon-liu.cn;
 #把http的域名请求转成https
 return 301 https://image.damon-liu.cn; 
}
 
server {
 listen 443 ssl;
 #请填写绑定证书的域名
 server_name sub.image.damon-liu.cn;
 #把http的域名请求转成https
 return 301 https://image.damon-liu.cn; 
}

由配置可见,我们收到访问域名image.damon-liu.cn的http请求时会转发到image.damon-liu.cn站点。同时我们也可以监听443端口的https://sub.image.…

三、Nginx实现单个或多个项目的反向代理

Nginx在实际项目开发的应用场景中非常多,主要是用来实现反向代理的功能。反向代理就是指用户访问某个ip端口备通过域名或者二级地址,无感转发到另一个全新的端口,展示那个端口上部署的项目。本文将介绍如何配置Nginx服务器实现反向代理。

1**、Nginx反向代理逻辑**

image 1 - Nginx实现单个或多个项目的反向代理

2、实现单个项目反向代理

我们这里要配置Nginx\conf\nginx.conf文件。
找到sever的参数。
listen:监听的端口;
(监听端口需要避免占用,尤其是win-server,需要关闭IIS在80端口的默认项目)
server_name:监听的域名(填写localhost即为公网IP);
location里proxy_pass:设置转发的目标地址;

server {
    listen       80;
    server_name  localhost;
 
    #charset koi8-r;
 
    #access_log  logs/host.access.log  main;
 
    location / {
       http://124.xxx.xx.21:8080/pages/index.html;  # 设置转发的目标地址
    }
 
    #error_page  404              /404.html;
 
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

这里给出的例子的意思是:当收到公网IP的访问时,转发请求到124.xxx.xx.21:8080/pages/index…

3、实现多个项目反向代理

下面是带有多个server的写法:

upstream lanxin{
    server localhost:8080;
}
 
upstream damon{
    server localhost:8081;
}
 
server {
    listen       80;
    server_name  lanxinyun.com;
 
    location / {
        proxy_pass http://lanxin;
    }
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
 
server {
    listen       80;
    server_name  damon-liu.work;
 
    location / {
        proxy_pass http://damon;
    }
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

80端口监听,当访问域名为lanxinyun.com时跳转到8080端口发布的项目,damon-liu.work域名访问则跳转到8081端口发布的项目。

通过反向代理,我们实现了同一端口的复用(通过Nginx配置不同的域名监听,跳转到不同的项目),这在项目中非常常见,是当代程序员必备技能点。

四、Nignx服务器配置SSL证书访问HTTPS

1、获取SSL证书

首先,需要获得有效的SSL证书。付费证书或使用免费的证书均可。我是腾讯云的服务器,在SSL证书模块里,可以直接下载。

下载好的压缩包包含如下几个文件:

image 3 - Nignx服务器配置SSL证书访问HTTPS

我们后面会用到的是.pem结尾的证书文件和对应的.key结尾的密钥文件。


2、存储证书文件

我们需要把证书文件保存在Nginx安装目录下,可以直接放到conf文件夹里面,我这里放到的是外面(下图的ssl文件夹)。

image 4 - Nignx服务器配置SSL证书访问HTTPS


3、修改Nginx配置

我们需要在conf\nginx.conf里增加配置:

① 增加https端口监听

配置443端口监听来自域名damon-liu.work的访问,如果访问来自于damon-liu.work域名,则转发请求到8081端口的项目。

upstream damon{
    server localhost:8081;
}
 
server {
    #SSL 默认访问端口号为 443
    listen 443 ssl;
    #请填写绑定证书的域名
    server_name  damon-liu.work;
    #请填写证书文件的相对路径或绝对路径
    ssl_certificate ../ssl/damon/damon-liu.work_bundle.crt; 
    #请填写私钥文件的相对路径或绝对路径
    ssl_certificate_key ../ssl/damon/damon-liu.work.key; 
    ssl_session_timeout 5m;
    #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #请按照以下协议配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on; 
      
    location / {


![img](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/212e2bfcd44c4748a4593d0e1b38ebd1~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771139947&x-signature=R%2FitoZLJ6hGXazTITph0R6B0nM4%3D)
![img](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/67343b5ada43488487d3be400ed32944~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771139947&x-signature=fmd0Ru5vB1kw%2FaNUPT7Boi07%2FPI%3D)
![img](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/0c9a1c549c21469c84a6cedddb5259e7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771139947&x-signature=7GZwqZYnPNKI%2F%2FWbvuc6F3x9OYo%3D)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

**开源项目:docs.qq.com/doc/DSlVlZExWQ0FRSE9H**