首页 > 系统相关 >Nginx 安装和简单配置

Nginx 安装和简单配置

时间:2023-04-06 23:34:01浏览次数:53  
标签:index http nginx local 配置 Nginx html usr 安装

1. Nginx 下载(以1.21.6为例)

下载链接

2. 解压

使用ftp工具上传到/opt路径下, 用下面的命令解压

tar -zxvf nginx-1.21.6.tar.gz

3. 编译和安装

解压后的/opt/nginx-1.21.6/目录下有一个 config 的文件, 执行该文件

./config
# 如果需要开启ssl模块,需要执行以下命令(ssl模块开启之后才能通过https访问)
# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

完成后分别执行make 和make install 命令安装nginx

make && make install

nginx安装前需要gcc 和zlib依赖等,,,

4. 常用命令

跳转到nginx 的安装目录(默认:/usr/local/nginx/sbin)

./nginx -v #查看版本号
./nginx # 启动
./nginx -s stop # 停止
./nginx -s status # 查看状态
./nginx -s reload # 重启/重新加载配置
./nginx -s quit # 处理完成当前请求之后冠以,并且不再处理新的请求

5. 安装服务 并设置开机自启动

执行以下命令,将nginx安装成系统服务

vi /usr/lib/systemd/system/nginx.service

在服务文件中粘贴以下内容:

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

保存后可以使用操作服务的方式操作nginx

systemctl start nginx.service # 启动nginx
systemctl stop nginx.service # 停止nginx
systemctl daemon-reload nginx.service # 重启nginx
systemctl enable nginx.service # 开机自启动

6. nginx配置文件

路径(默认): /usr/local/nginx/conf

全局配置:

worker_processes 1;

nginx启动时会有两个进程(不是线程),一个是master线程,读取配置并协调各个工作进程.并不会对客户端发来的请求进行处理.
对于客户端发来的请求都是由work进程进行处理的, 而worker_processes就是在设置work进程的数量.(最好跟处理器核心数一致)

events配置

worker_connections 1024;

nginx服务器跟用户的最大连接数

http配置

  • http全局配置
    include mime.types;

    引入http mime类型(告诉浏览器这是什么类型的文件,以便浏览器可以自动打开展示给用户)

    default_type application/octet-stream;

    如果mime类型没匹配上,默认使用二进制流的方式传输(用户在浏览器里看到的就是文件没有被打开而是被下载)。

  • server配置
    listen 80;

    监听端口

    server_name localhost;

    主机名,默认是localhost,如果有,可以替换为自己的域名

    location /

    可以配置多个,根据客户端的请求路径配置不同路径,最终返回给客户端不同的文件.支持正则

    sendfile on;

    使用linux的 sendfile方法直接发送文件给客户端,实现文件的高效传输.否则文件会先被复制到nginx服务器的内存中再发给客户端,增加服务器的压力.

7 简单配置反向代理

7.1 启动两个端口号分别为8080和8081的tomcat服务(通过docker启动较为简单,过程略)

为便于区分,需要分别在两个Tomcat上面创建两个html文件,以便后面确认结果

7.2 修改nginx.conf配置文件

修改server配置

        server {
        listen       80;
        server_name  本机IP;
        location ~/edu/ {
            root   /www;
            proxy_pass http://127.0.0.1:8081;
            index  index.html index.htm;
        }
        location ~/vod/ {
            root   /www/www;
            proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

测试: 在浏览器输入下面两个url会出现两个不同的网页,表示配置完成
http://主机ip:端口/vod/index.html
http://主机ip:端口/edu/index.html

8 配置负载均衡

8.1 分别启动两个端口号为8080和8081的服务.

需要在/tomcat/webapps/ 文件夹下新建两个相同的文件夹,然后分别创建两个名称相同内容不同的html文件

8.2 修改nginx.conf配置文件

  • 在server平级的区域配置负载均衡器
    # loadbalance配置
    upstream mylb{
        # 负载均衡的方式(轮询(默认),IP哈希(IP_HASH),权重(weight=),url哈希(url_hash),最少连接(least_conn),fair)
        server 本机IP:8080;
        server 本机IP:8081;
    }
  • 在localtion中引用负载均衡器
        location ~/edu/ {
            root   /www/www;
            proxy_pass http://mylb;
            index  index.html index.htm;
        }

测试: 默认会通过轮询的方式来实现负载均衡,输入以下url,每此刷新都能看到不同的页面
http://主机ip/edu/index.html

9 配置动静分离

9.1 在服务器根目录创建一个测试用的文件夹,在里面放入测试用的文件

image

9.2 修改nginx.conf配置文件的内容

        location /images/ {
            root   /www;
            autoindex on;
        }

在浏览器输入以下url即可访问到静态资源
http://主机IP/images/grinning-face-with-sweat_1f605.png
image

标签:index,http,nginx,local,配置,Nginx,html,usr,安装
From: https://www.cnblogs.com/W82838/p/17294147.html

相关文章

  • SpringBoot2核心技术篇(自动配置原理入门[一])
    1.SpringBoot特点1.1依赖管理父项目做依赖管理<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.11</version></parent>几乎声明了所有开发中......
  • vue全家桶进阶之路27:Vue.js 3.0的下载和安装
    使用脚手架vue-cli创建vue3项目,创建前需要准备以下:1、node.js环境见:https://www.cnblogs.com/beichengshiqiao/p/17251233.html2、npm、cnpm工具见:https://www.cnblogs.com/beichengshiqiao/p/17251860.html3、vue框架见:https://www.cnblogs.com/beichengshiqia......
  • uni-app:nvue:配置底部安全区域(hbuilderx 3.7.3)
    一,文档地址:https://uniapp.dcloud.net.cn/collocation/manifest-app.html#full-manifest如图: 说明:offset:底部安全区域偏移,"none"表示不空出安全区域,"auto"自动计算空出安全区域二,编辑配置文件:manifest.json,如图所示,选择源码视图,在app-plus一项下进行设置1,取......
  • VSCode 工程下手动生成配置文件
    0.打开VS-Code,打开所在的工程1.首先在工程目录下新建.vscode文件夹2.按Ctrl+Shift+P,输入C/C++E,选择如图所示的项目,即自动生成配置文件。  3. 配置文件名字为:c_cpp_properties.json代码如下:1{2"configurations":[3{4"name":......
  • 47 openEuler搭建Nginx服务器-配置文件说明和管理模块
    47openEuler搭建Nginx服务器-配置文件说明和管理模块47.1Nginx配置文件说明当nginx服启动后,默认情况下它会读取如表2所示的配置文件。表2配置文件说明文件说明/etc/nginx/nginx.conf主要的配置文件/etc/nginx/conf.d配置文件的辅助目录,这些配置文件也被包含......
  • VSCode 新建 ssh 并配置免密登录
    #在local端VSCode点击新建ssh,输入ssh<user>@<ip>-A,修改config,点击connect#在local端cmd运行ssh-keygen-trsa#在remote端shell运行ssh-keygen-trsacd/home/lyc/.ssh/id_rsa#将loacl端id_rsa.pub的内容复制到authorized_keysvimauthorized......
  • PVE Cloud-INIT 模板配置
    PVECloud-INIT模板配置Cloud-init是什么Cloud-init是开源的云初始化程序,能够对新创建弹性云服务器中指定的自定义信息(主机名、密钥和用户数据等)进行初始化配置。通过Cloud-init进行弹性云服务器的初始化配置,将对您使用弹性云服务器、镜像服务和弹性伸缩产生影响。简单地讲,clou......
  • spring导入第三方资源对应的配置类
      importcom.alibaba.druid.pool.DruidDataSource;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.PropertySource;@PropertySource("classpa......
  • pycharm中配置MongoDB数据库出现未找到驱动程序类 'com.dbschema.MongoJdbcDriver' (v
      之前重新装了一下pycharm,发现MongoDB数据库连接时发生了错误。具体错误:未找到驱动程序类'com.dbschema.MongoJdbcDriver'(view)。这怎么解决呢?其实很简单,在驱动程序中选一个版本进行下载就好了。步骤如下:1、找到驱动程序,点击MongoDB,再点击+号。2、找到最新版本,点击下载......
  • 二。docker安装mysql 并配置
    1.docker安装mysql1.1使用docker拉取mysql的镜像dockerpullmysql:5.71.2通过镜像启动dockerrun-p3306:3306--namemymysql-v$PWD/conf:/etc/mysql/conf.d-v$PWD/logs:/logs-v$PWD/data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=123456-dmysql:5.7-p3306:3306:......