vlambda博客
学习文章列表

新手小白需要掌握的Nginx部署技能

前言

大家好,我是testerzhang,今天给大家分享一个Nginx编译部署的文章。其实之前我也写过一篇,但是有些东西更新了,还是重新在写一篇分享给大家吧。

1.Nginx

维基百科的定义:

Nginx(发音同"engine X")是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由伊戈尔·赛索耶夫(Игорь Сысоев)创建并于2004年首次公开发布。2011年成立同名公司以提供支持。2019年3月11日,Nginx公司被F5 Networks以6.7亿美元收购。

Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx,通常作为负载均衡器。

2.系统依赖库安装

请使用root用户安装Nginx所需要的依赖库

# yum install -y gcc gcc-c++ pcre-devel openssl-devel

3.下载Nginx

$ mkdir bm$ cd bm$ wget http://nginx.org/download/nginx-1.20.1.tar.gz

4.编译Nginx

解压编译

$ tar zxf nginx-1.20.1.tar.gz$ cd nginx-1.20.1/$ ./configure --prefix=/home/testerzhang/nginx --with-http_stub_status_module --with-http_ssl_module

如果你需要其他模块,比如http_v2_module模块

$ ./configure --prefix=/home/testerzhang/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module

编译安装

$ make$ make install

这时候我们就可以在安装目录查看到编译好的文件了。

删掉安装目录的html文件夹下的文件

$ cd /home/testerzhang/nginx/html$ rm *.html

5.打包编译好的Nginx目录

这里打包最原始的配置,当然如果你要提前修改Nginx配置文件,再打包也是可以的。

$ cd ~/$ tar zcf nginx.tar.gz nginx

然后你就可以拷贝到你想要部署的机器。

6.新机器部署

在你想要部署的目录,解压压缩包

$ tar zxf nginx.tar.gz $ cd nginx

修改配置文件

$ vim conf/nginx.conf

这里列举下需要修改的常规配置

# 由于部署的机器不是按照编译打包的账号来的,所以这里要配置实际部署机器的绝对路径。error_log /opt/testerzhang/nginx/logs/error.log;http { ... # 设置访问日志信息 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /opt/testerzhang/nginx/logs/access.log main;   # 隐藏nginx版本 server_tokens off; # 隐藏后端服务信息 proxy_hide_header Server; ...   # 这里设置端口80的端口配置,并自动重定向到https的网站地址。 server { listen 80 ; server_name www.xxx.top; access_log /opt/testerzhang/nginx/logs/80.access.log main; # 限制IP访问,前提对应配置的文件要存在 #include blockip.conf; return 301 https://www.xxx.top; }   server { listen 443 ssl ; server_name www.qahome.top;  access_log /opt/testerzhang/nginx/logs/443.access.log main; # 限制IP访问,前提对应配置的文件要存在 #include blockip.conf; # 添加同源策略,防止跨站脚本,禁止某些浏览器的内容类型探嗅 add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff";  # SSL证书的配置 ssl_certificate /opt/testerzhang/zhengshu/1_www.xxx.top_bundle.crt; ssl_certificate_key /opt/testerzhang/zhengshu/2_www.xxx.top.key; ssl_protocols TLSv1.2; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on;  # 根目录对应的静态文件目录 location / { root /opt/testerzhang/website; index index.html index.htm; }  # 转发后端请求 #location /backend { # proxy_set_header Host $host:$proxy_port; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # # proxy_pass http://10.10.10.10:58080; #}  ... }}

7.启停命令

正常在编译后的安装目录,不需要指定配置文件,但是由于是部署新机器,可能不是同一个账号,你需要加上绝对路径的配置文件

启动

$ ./nginx -c /opt/testerzhang/nginx/conf/nginx.conf

停止

$ ./nginx -c /opt/testerzhang/nginx/conf/nginx.conf -s stop

重新加载Nginx配置

$ ./nginx -c /opt/testerzhang/nginx/conf/nginx.conf -s reload

文末


如果你喜欢我的推荐,可以点击"收藏"进行稍后阅读,可以点击"在看"支持下,也可以分享下此文章给你的其他朋友。

testerzhang
十年测试生涯,爱分享技术。头条号:testerzhang
85篇原创内容
Official Account

推荐阅读