linux之nginx安装与简单配置
第一部分:nginx安装
什么是Nginx?
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下Nginx 是 Apache 服务器不错的替代品.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。
Nginx的安装
模块依赖性Nginx需要依赖下面3个包
1. gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )
2. rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )
3. ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ )
Nginx包下载: http://nginx.org/en/download.html
依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包.
图解教程
第一步: 下载安装所需包,版本可以更改。
1 2 3 4 | openssl-fips-2.0.2.tar.gz zlib-1.2.7.tar.gz pcre-8.21.tar.gz nginx-1.2.6.tar.gz |
第二步:依次安装openssl-fips-2.0.2.tar.gz, zlib-1.2.7.tar.gz, pcre-8.21.tar.gz, nginx-1.2.6.tar.gz
1.安装openssl-fips-2.0.2.tar.gz
1 2 3 4 5 | [root@localhost mrms]# tar -zxvf openssl-fips-2.0.2.tar.gz [root@localhost mrms]# cd openssl-fips-2.0.2 [root@localhost openssl-fips-2.0.2]# ./config [root@localhost openssl-fips-2.0.2]# make [root@localhost openssl-fips-2.0.2]# make install |
2.安装zlib-1.2.7.tar.gz
1 2 3 4 5 6 7 | 2.安装zlib-1.2.7.tar.gz [root@localhost mrms]# tar -zxvf zlib-1.2.7.tar.gz [root@localhost mrms]# cd zlib-1.2.7 [root@localhost zlib-1.2.7]# ./configure [root@localhost zlib-1.2.7]# make [root@localhost zlib-1.2.7]# make install |
3.安装pcre-8.21.tar.gz
# tar -zxvf pcre-8.21.tar.gz
[root@localhost mrms]# cd pcre-8.21
[root@localhost pcre-8.21]# ./configure
[root@localhost pcre-8.21]# make
[root@localhost pcre-8.21]# make install
4.安装 nginx-1.2.6.tar.gz
[root@localhost mrms]# tar -zxvf nginx-1.2.6.tar.gz [root@localhost mrms]# cd nginx-1.2.6 [root@localhost nginx-1.2.6]# ./configure --with-pcre=../pcre-8.21 --with-zlib=../zlib-1.2.7 --with-openssl=../openssl-fips-2.0.2 [root@localhost nginx-1.2.6]# make [root@localhost nginx-1.2.6]# make install
至此Nginx的安装完成!
第三步:检测是否安装成功
[root@localhost nginx-1.2.6]# cd /usr/local/nginx/sbin [root@localhost sbin]# ./nginx -t
启动nginx
[root@localhost sbin]# ./nginx
查看端口
[root@localhost sbin]# netstat -ntlp
关闭和重启nginx
1 2 | [root@localhost mrms]./nginx -s stop [root@localhost mrms]./nginx -s reload |
第二部分:ssl证书制作
首先执行如下命令生成一个key
1 | openssl genrsa -des3 - out ssl.key 1024 输入密码:123456 |
然后他会要求你输入这个key文件的密码。不推荐输入。因为以后要给nginx使用。每次reload nginx配置时候都要你验证这个PAM密码的。
由于生成时候必须输入密码。你可以输入后 再删掉。
1 2 3 | mv ssl.key 123456.key openssl rsa - in 123456.key - out ssl.key rm 123456.key |
然后根据这个key文件生成证书请求文件
1 | openssl req - new -key ssl.key - out ssl.csr |
以上命令生成时候要填一下东西, 一个个看着写吧(可以随便,毕竟这是自己生成的证书)
最后根据这2个文件生成crt证书文件
1 | openssl x509 -req -days 365 - in ssl.csr -signkey ssl.key - out ssl.crt |
这里365是证书有效期 推荐3650哈哈。这个大家随意。最后使用到的文件是key和crt文件。
如果需要用pfx 可以用以下命令生成
1 | openssl pkcs12 -export -inkey ssl.key - in ssl.crt - out ssl.pfx |
在需要使用证书的nginx配置文件的server节点里加入以下配置就可以了。
1 2 3 4 5 6 7 | ssl on ; ssl_certificate /home/ssl.crt; ssl_certificate_key /home/ssl.key; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on ; |
然后重启nginx就大功告成了
第三部分:nginx.conf文件配置
配置http与https转发
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #昌吉车辆监控系统 web<br>upstream vms_server { server 127.0.0.1:8080; } server{ listen 59020; server_name localhost; location /vms_server/ { proxy_pass http: //vms_server/VMS/rest/; #设置允许跨域 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "POST, GET, OPTIONS" ; add_header Access-Control-Allow-Headers "Origin,Authorization,Accept" ; add_header Access-Control-Allow-Credentials true ; } } |
# HTTPS server
server {
listen 59018 ssl;
server_name www.hejj.com;
resolver 8.8.8.8;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 20m;
ssl on;
ssl_certificate_key D:\ssl/ssl.key;
ssl_certificate D:\ssl/ssl.crt;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#车辆监控 https
location /vms_server/ {
proxy_pass http://vms_server/VMS/rest/;
#设置允许跨域
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "POST, GET, OPTIONS";
add_header Access-Control-Allow-Headers "Origin,Authorization,Accept";
add_header Access-Control-Allow-Credentials true;
}
}
遇到问题
location /index/ {
root html;
index index.html index.htm;
}
这个不能被注释,否则nginx访问出现403
参照博客:https://www.cnblogs.com/kingsy/p/7879115.html
参照博客:https://blog.csdn.net/dyllove98/article/details/8892509
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具