centos7安装nginx,以及使用node测试反向代理
1.添加nginx的安装源
vi /etc/yum.repos.d/nginx.repo
2.输入下面内容,并保存退出
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
这里是RHEL7
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/rhel/7/$basearch/
gpgcheck=0
enabled=1
3.安装
yum install nginx
4.启动
[root@freesaber tmp]# systemctl start nginx
[root@freesaber tmp]# systemctl status nginx
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2019-03-28 16:16:38 CST; 7s ago
Docs: http://nginx.org/en/docs/
Process: 6538 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 6539 (nginx)
CGroup: /system.slice/nginx.service
├─6539 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
└─6540 nginx: worker process
下面安装node
1.安装nvm https://github.com/creationix/nvm
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
2.进入nodejs官网,查看当前nodejs的版本

3.使用nvm安装node
nvm install 10.15.3
4.指定node的版本
[root@freesaber ~]# nvm use v10.15.3
Now using node v10.15.3 (npm v6.4.1)
[root@freesaber ~]# nvm alias default v10.15.3
default -> v10.15.3
5.查看版本
[root@freesaber ~]# node -v
v10.15.3
[root@freesaber ~]# npm -v
6.4.1
6.编写一段node.js脚本,并运行
vi app.js
const http = require('http')
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/plan;charset=utf-8'});
res.end('来自8081端口的node响应')
}).listen(8081);
node app.js
7.在阿里云的安全组中添加端口入规则

8.访问

下面是我的两个域名,默认都是访问的服务器的80端口
http://www.freesaber.cn/
http://nodetree.freesaber.cn/
由于没有配置nginx访问这两个域名,都会得到同一个返回页面

下面将我的二级域名nodetree.freesaber.cn反向代理到我的8081端口,新开一个shell远程窗口,不要关闭node
1.nginx的目录结构和配置文件,我们新增的配置放在conf.d目录下
[root@freesaber nginx]# cd /etc/nginx
[root@freesaber nginx]# ll
total 40
drwxr-xr-x 2 root root 4096 Mar 28 16:14 conf.d
-rw-r--r-- 1 root root 1007 Mar 26 22:27 fastcgi_params
-rw-r--r-- 1 root root 2837 Mar 26 22:27 koi-utf
-rw-r--r-- 1 root root 2223 Mar 26 22:27 koi-win
-rw-r--r-- 1 root root 5231 Mar 26 22:27 mime.types
lrwxrwxrwx 1 root root 29 Mar 28 16:14 modules -> ../../usr/lib64/nginx/modules
-rw-r--r-- 1 root root 643 Mar 26 22:25 nginx.conf
-rw-r--r-- 1 root root 636 Mar 26 22:27 scgi_params
-rw-r--r-- 1 root root 664 Mar 26 22:27 uwsgi_params
-rw-r--r-- 1 root root 3610 Mar 26 22:27 win-utf
[root@freesaber nginx]# cat nginx.conf user nginx;
worker_processes 1; error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; events {
worker_connections 1024;
} http {
include /etc/nginx/mime.types;
default_type application/octet-stream; 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 /var/log/nginx/access.log main; sendfile on;
#tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;
}
2.复制一份默认的配置文件
[root@freesaber nginx]# cd /etc/nginx/conf.d
[root@freesaber conf.d]# ls
default.conf
[root@freesaber conf.d]# cp default.conf nodetree.conf
[root@freesaber conf.d]# ll
total 8
-rw-r--r-- 1 root root 1093 Mar 26 22:25 default.conf
-rw-r--r-- 1 root root 1093 Mar 28 16:58 nodetree.conf
[root@freesaber conf.d]#
3.修改内容新增的nodetree.conf,并保存退出
server {
listen 80;
server_name nodetree.freesaber.cn;
location / {
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
# proxy_set_header Host $http_host;
# proxy_set_header X-Nginx-Proxy true;
proxy_pass http://127.0.0.1:8081;
# proxy_redirect off;
}
}
4.重启nginx,访问二级域名,这时请求被反向代理到了8081端口的node服务,而对外的服务都是nginx的80端口。其实这个时候,可以从阿里云的安全组中删除8081的入规则。因为nginx代理到本地的8081,而8081不会被外部访问。


补充docker:
https://www.runoob.com/docker/docker-install-nginx.html
其中第一次运行nignx是为了拿到默认配置文件,到指定目录(多拷贝一个conf.d)。需要添加一个反向代理的目录。
docker run -d -p 80:80 --name nginx-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx -v ~/nginx/conf.d:/etc/nginx/conf.d nginx
nginx使用容器部署,然后其他应用也使用ngxin部署后,反向代理的ip不能使用127.0.0.1。可以通过docker inspect来查看容器内部的ip地址,可以通过此ip地址+容器内的端口号进行代理。

添加的反向代理conf
server {
listen 80;
server_name huangyielm.freesaber.cn;
location / {
proxy_pass http://172.17.0.2:8080;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
centos7安装nginx,以及使用node测试反向代理的更多相关文章
- CentOS安装Nginx,并配置nodejs反向代理
安装介绍 安装位置:/usr/local/nginx nginx安装包下载地址:http://nginx.org/download/nginx-1.7.11.tar.gz 安装依赖软件 安装nginx ...
- 安装Nginx并为node.js设置反向代理
最近看了反向代理和正向代理的东西,想到自己的node.js服务器是运行在3333端口的,也没有为他设置反向代理,node.js项目的一些静态文件是完全可以部署在Nginx上,以减少对node.js的请 ...
- centos7安装Nginx 配置及反向代理
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Ngin ...
- 【Nginx安装】CentOS7安装Nginx及配置
[Nginx安装]CentOS7安装Nginx及配置 2018年03月05日 11:07:21 阅读数:7073 Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttp ...
- linux(centos7) 安装nginx
linux(centos7) 安装nginx 1.14(stable) 版本 Nginx配置文件常见结构的从外到内依次是「http」「server」「location」等等,缺省的继承关系是从外到内, ...
- linux centos7 安装常用软件java,node,mysql,Seafile
linux centos7 安装常用软件java,node,mysql,Seafile 安装压缩解压缩软件 yum install -y unzip zip 安装git yum install -y ...
- VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法
VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法 在linux上安装nginx 请参考:Linux Centos7 安装 nginx 在虚拟机centos7上安装nginx之 ...
- Nginx服务器部署 负载均衡 反向代理
Nginx服务器部署负载均衡反向代理 LVS Nginx HAProxy的优缺点 三种负载均衡器的优缺点说明如下: LVS的优点: 1.抗负载能力强.工作在第4层仅作分发之用,没有流量的产生,这个特点 ...
- nginx配置虚拟主机、反向代理和负载均衡
为了实现这个功能,需要修改nginx的配置文件,将nginx.conf清理一下,使结构更清晰. worker_processes ; events { worker_connections ; } h ...
随机推荐
- MS Sql Server 查询数据库中所有表数据量
方法一: SELECT a.name,b.rows FROM sysobjects a INNER JOIN sysindexes b ON a.id=b.id ,) AND a.Type='u' O ...
- Tecplot: Legend和图像中 Dashed/Dash dot/Long dash 等虚线显示没有区别的问题
问题描述:如下图1中线型明明选择的不同,但是tecplot里显示的图像和legend里显示的线型没有区别,应该是bug. tecplot 版本:360EX 2017R2 解决办法:把Pattern ...
- Linux 学习之路 --------ip地址虚拟网络
// ifconfig 查看IP地址 网络信息 我的IP 39.161.136.25 ① 为网卡临时配置IP地址 ifconfig eth0 39.161.136.5 (netmask ...
- c++中函数的内存注意项
函数不能返回指向栈内存的指针!因为返回的都是值拷贝! char *str = "abcd"这样就是字符串常量,这种能返回,而char str[] = "abcd" ...
- 20155219付颖卓 Exp3 免杀原理与实践
1.基础问题回答 (1)杀软是如何检测出恶意代码的? 杀毒软件有一个病毒的特征码库,通过识别恶意代码的特征码或者特征片段检测恶意代码 杀毒软件通过动态检测对象文件的行为来识别恶意代码,如果他的行为在一 ...
- JavaScript权威指南--第3章 类型、值和变量
在编程语言中,能够表示并操作的值(value)的类型称作数据类型(type).使用变量来储存值.JavaScript中数据类型有两种:原始类型(primitive type/基本数据类型)和对象类型( ...
- Linux压缩和解压缩
1.tar.gz tar.gz这种格式是Linux下使用得最多的压缩格式.它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率. tar -zcvf archive_name.tar.gz ...
- 2.4 逻辑运算符 &&(与)、||(或)、非(!)
一.逻辑运算符 &&(与).||(或).非(!) 逻辑运算符两边的表达式一定是布尔值,结果也是布尔值. 1.1.1 逻辑与 && => 表示并且.且的意思: tr ...
- myEclipse出现cannot paste the clipboard contents into the selected elements报错
导入jar包报错,cannot paste the clipboard contents into the selected elements,查阅资料让重新打开工程,但依然报错. 最后在本地路径复制 ...
- highchart在IE8下面的显示问题解决
完整的代码: <!DOCTYPE HTML><html> <head> <meta http-equiv="Content-Type" c ...