nginx搭建

本文详细介绍了如何安装和配置Nginx,包括下载、依赖安装、配置文件修改以及启动服务。同时,讲解了如何部署Tomcat服务器,并通过Nginx实现负载均衡,特别提到了sticky模块的使用,以确保用户请求固定分配到特定的Tomcat实例。此外,还涵盖了防火墙设置,允许外部访问以及如何卸载Nginx。

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

Nginx 的简介

Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。

Nginx 的安装

1. 到nginx官网下载软件

- http://nginx.org/

2. 安装c++编译器

- yum -y install gcc
- yum -y install gcc-c++

3. 安装pcre依赖

(1) 联网下载pcre压缩文件依赖

- 执行命令:wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

(2) 解压压缩文件到指定目录下(比如home下)

- 执行命令:tar zxvf pcre-8.37.tar.gz -C /home/

(3) 进入解压之后的目录,执行命令

- ./configure
- 执行完毕后再执行命令:make && make install

(4) 查看是否安装成功

- 在pcre目录下执行命令:pcre-config --version

4. 安装openssl、zlib、gcc依赖

- 执行命令:yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

5. 下载sticky、openssl

(1) sticky下载地址:

- https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/c78b7dd79d0d.tar.gz
- 解压文件
- tar xzf nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d.tar.gz
- 修改名称,移动到指定目录下
- mv nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d /home/nginx-sticky
- 进入sticky文件夹,打开ngx_http_sticky_misc.c文件,在第四第五行插入数据#include <openssl/sha.h> 和 #include <openssl/md5.h>,命令如下:
- sed -i '4i #include <openssl/sha.h>' ngx_http_sticky_misc.c
- sed -i '5i #include <openssl/md5.h>' ngx_http_sticky_misc.c

(2) openssl 下载地址:

- https://www.openssl.org/source/old/1.1.1/openssl-1.1.1a.tar.gz
- 解压文件到指定目录下(比如home下)
- tar zxvf openssl-1.1.1a.tar.gz -C /home/

6.安装nginx

(1) 使用命令解压

- tar zxvf nginx-1.12.2.tar.gz -C /home/

(2) 进入安装目录,执行命令:

- ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-openssl=/home/openssl-1.1.1d --add-module=/home/nginx-sticky
- 执行完毕后再执行命令:
- make -j8
- make install

7.启动nginx

- 进入目录 /usr/local/nginx/sbin,执行命令:./nginx 启动服务
- 打开浏览器,访问服务器的ip,(端口默认是80,可以不写)
- 常用命令:
	- (1)查看 nginx 版本号: ./nginx -v
	- (2)停止 nginx: ./nginx -s stop
	- (3)重新加载 nginx:./nginx -s reload

8.开放端口或者关闭防火墙

- 在 windows 系统中访问 linux 中的 nginx,默认不能访问的,因为防火墙问题

(1)关闭防火墙

- 执行命令:systemctl disable firewalld.service

(2)开放访问的端口号,80 端口

- 查看开放的端口号:firewall-cmd --list-all
- 设置开放的端口号:firewall-cmd --add-port=80/tcp --permanent
- 重启防火墙:firewall-cmd –reload

9.部署tomcat服务器

(1)部署两个tomcat,端口号为8081,8082(也可以设置为其他的端口),给tomcat文件夹开放权限

- (目录示例:/home/tomcat/tomcat8081、tomcat8082)
- 执行命令:chmod -R 777  /home/tomcat
- 开放端口:
	- firewall-cmd --add-port=8081/tcp --permanent
	- firewall-cmd --add-port=8081/tcp --permanent
	- firewall-cmd –reload

(2)部署项目war包,能够正常访问项目

10.修改nginx配置文件(具体配置请参考)

  • nginx-负载均衡-sticky.pdf

(1)打开配置文件

- 目录:/usr/local/nginx/conf/nginx.conf

(2)在http{}内,server{}上方添加内容

upstream myserver {
		#每个访客固定访问一个后端服务器(生产环境下不适用)
		#ip_hash;
		sticky;
		#默认是1,权重越高被分配的客户端越多
		server 10.2.37.92:8081  weight=2;
		server 10.2.37.92:8082  weight=1;	
	}

(3)修改server{}的内容

server {
	#默认是80,也可以改为其他的
        listen       80;
        #server_name  localhost;
        server_name  10.2.37.92;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass	http://myserver;
            root   html;
            index  index.html index.htm;
        }
		...
	}

(4) 重启nginx

- 进入目录:cd /usr/local/nginx/sbin
- 执行命令:./nginx -s reload

(5)启动项目

- http://10.2.37.92:80/login
- 服务会自动访问8081或者8082,如果其中一个tomcat服务断掉,会继续访问另一个服务。

(6)卸载nginx

链接地址

### 使用 Nginx 搭建 WebDAV 服务器 #### 安装必要的模块和支持软件包 为了使 Nginx 支持 WebDAV 功能,可能需要编译安装带有 `--with-http_dav_module` 的 Nginx 或者添加第三方扩展模块如 `nginx-dav-ext-module` 来增强其功能[^2]。 #### 创建用于 WebDAV 访问的用户账号 建议创建专门的服务账户来运行 Nginx 和处理 WebDAV 请求。这可以通过 Linux 用户管理命令完成: ```bash groupadd nginx useradd -c "nginx user" -d /var/cache/nginx -s /sbin/nologin nginx ``` 此步骤有助于提高安全性并遵循最小权限原则[^3]。 #### 设置认证机制 为了让客户端能够安全地连接到 WebDAV 服务,应该配置基本的身份验证方式。可以利用 OpenSSL 工具生成加密后的密码文件供 Nginx 使用: ```bash echo "username:$(openssl passwd password)" >/etc/nginx/user.passwd ``` 这里替换 `username` 和 `password` 为实际使用的用户名和密码[^4]。 #### 编辑 Nginx 配置文件 接下来,在 Nginx 中定义一个新的虚拟主机或修改现有站点配置以启用 WebDAV 协议的支持。以下是典型的配置片段示例: ```nginx server { listen 80; server_name your_domain; location /webdav/ { alias /var/www/webdav/; auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/user.passwd; client_body_temp_path /tmp; client_max_body_size 1G; dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK; create_full_put_path on; autoindex on; } } ``` 这段配置指定了 `/webdav/` 路径下的资源可通过 HTTP 方法上传下载,并启用了详细的 DAV 命令集以便更好地兼容各种客户端应用[^1]。 #### 测试与重启 Nginx 保存更改后测试配置的有效性,并重新加载 Nginx 使其生效: ```bash sudo nginx -t sudo systemctl reload nginx ``` 此时应当可以在浏览器或其他支持 WebDAV 的应用程序里尝试访问 http://your_domain/webdav 并执行相应的文件操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值