一、下载
上传到服务器 我的存放目录是 /usr/download
二、解压
cd /usr/download
tar -xvf nginx-1.26.0.tar.gz
三、安装插件
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc-c++ wget
四、配置
cd /usr/download/nginx-1.26.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
五、编译安装
make -j2 && make install
六、修改配置
cd /usr/local/nginx/conf
#创建配置文件目录
mkdir confs
#备份
cp nginx.conf nginx.conf.bak
vim nginx.conf
将下面的内容添加到http模块中
#引用其它配置文件
include confs/*.conf;
#防止nginx中文显示乱码的问题
charset utf-8;
charset_types text/css text/plain application/json application/javascript;
七、启动
- 开放端口
#开放81端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重新加载防火墙
firewall-cmd --reload
阿里云服务器,安全组配置需开放80端口
- 启动
#进入nginx的执行目录
cd /usr/local/nginx/sbin/
#相关命令
./nginx #启动nginx
./nginx -s stop #关闭nginx
./nginx -s reload #重启nginx、重新载入配置文件
浏览器输入IP地址
八、编写配置
1.域名代理配置
需要有域名证书
由于我没有域名证书,这里就写个样例,有证书的.txt
换成.conf
,按照内容对应修改即可
cd /usr/local/nginx/conf/confs
##
#域名证书的配置名称自定义,这里我起名domain
vi domain.txt
内容如下
server {
#监控端口
listen 80;
#将domain_name修改成证书绑定的域名,例如:www.example.com
server_name domain_name;
#将所有的http请求通过rewrite重定向到https
rewrite ^(.*)$ https://$host$1 permanent;
location / {
#将static_directory替换成静态文件的目录
root static_directory;
index index.html index.htm;
}
}
server {
#ssl协议访问端口默认为443
listen 443 ssl;
#将domain_name修改成证书绑定的域名,例如:www.example.com
server_name domain_name;
index index.html index.htm;
#将name.pem替换成你的证书名称,证书放在conf目录下
ssl_certificate name.pem;
#将name.key替换成你的证书密钥名称,证书密钥要跟证书在同一目录下
ssl_certificate_key name.key;
ssl_session_timeout 5m;
#使用此加密套件
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#使用该协议进行配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
client_max_body_size 1000m;
location / {
#将static_directory替换成静态文件的目录
root static_directory;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
#以下
location /micro-service-name {
#micro-service-name:项目中的微服务名称
#访问https://domian_name/micro-service-name会被代理到指定微服务端口,假设微服务端口为8090
proxy_pass http://localhost:8090;
}
}
记得防火墙开放
443
端口 和其它配置相关的端口,例如8090
2.代理分流配置(负载均衡)
即访问指定的端口/路径,会被代理配置的机器列表中的一个,同样的写个样例,偷懒不想再配置另外一台机器
vi /usr/local/nginx/conf/confs/upstream.txt
内容如下
#xxx自定义路由 这里定义什么 下面就得跟着一样
upstream xxx {
#动态的选取其中连接数最少的服务器来处理当前请求
least_conn;
server IP1; #机器1IP地址
server IP2; #机器2IP地址
server IP3; #机器3IP地址
#........
}
server {
#port 换成要代理的端口号
listen port;
server_name localhost;
location /upstream {
# 本机ip:port/upstream 换代理到http://IP1 或者http://IP2 或者http://IP3
proxy_pass http://xxx;
}
}
记得防火墙开放相关端口
3.编写demo.conf
vi /usr/local/nginx/conf/confs/demo.conf
内容如下
server {
listen 8801; #监控端口
server_name localhost; #服务名相同 端口必须不同
location /domain.txt {
alias conf/confs/domain.txt;
}
location /upstream.txt {
alias conf/confs/upstream.txt;
}
}
记得防火墙开放相关端口
加载demo.conf配置文件
cd /usr/local/nginx/sbin
./nginx -s reload
浏览器访问 IP:8801/domain.txt
浏览器访问 IP:8801/upstream.txt