《微信本地調試》一文中,小編提到了使用ngrok、natapp和花生殼進行內網穿透。可是,想要使用自定義域名,都是要收費的。php
本文中,咱們要搭建一個免費的內網穿透服務器。內網穿透服務器,可選的軟件有lanproxy、frp、n2n等等,今天咱們選擇的是lanproxy。html
原文地址:http://www.voidking.com/2017/...java
一、一臺公網服務器(運行proxy-server)。
二、一臺內網pc或服務器(運行proxy-client)。node
一、刪除自帶jdknginx
rpm -e --nodeps `rpm -qa | grep java`
二、查看yum庫中有哪些jdk版本。yum search java | grep jdk
git
三、選擇java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment版本進行安裝。yum install java-1.8.0-openjdk-devel.x86_64
github
默認安裝目錄爲/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64
。web
四、配置環境變量vim /etc/profile
apache
在最後添加:vim
#set java environment JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
五、讓修改當即生效source /etc/profile
六、查看安裝結果java
,javac
,java -version
一、訪問lanproxy下載地址,下載proxy-server-0.1.zip,上傳到公網服務器。
或者,直接在服務器上下載wget https://github.com/ffay/lanproxy/files/1274739/proxy-server-0.1.zip
curl -C - -O -L https://github.com/ffay/lanproxy/files/1274739/proxy-server-0.1.zip
二、解壓安裝unzip proxy-server-0.1.zip
mv proxy-server-0.1 /usr/local/
三、修改配置文件vim /usr/local/proxy-server-0.1/conf/config.properties
修改管理員的用戶名和密碼。
四、啓動服務cd /usr/local/proxy-server-0.1/bin
chmod +x startup.sh
./startup.sh
五、訪問 http://host_ip:8090 ,便可看到登陸界面。
一、添加域名解析local
到公網ip。
二、在nginx虛擬主機配置目錄中,添加local.voidking.com.conf,內容以下:
server { listen 80; server_name local.voidking.com; charset utf-8; location /{ proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1024m; client_body_buffer_size 128k; client_body_temp_path data/client_body_temp; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path data/proxy_temp; proxy_pass http://127.0.0.1:8090; } }
三、測試nginx./nginx -t
,也許會提示缺乏目錄,那麼新建目錄。mkdir -p /usr/local/nginx/data/client_body_temp
mkdir -p /usr/local/nginx/data/proxy_temp
四、重啓nginx./nginx -s reload
五、訪問 http://local.voidking.com/ ,便可看到登陸界面。
一、登陸lanproxy,添加客戶端,輸入客戶端備註名稱,生成隨機密鑰,提交添加。
二、客戶端列表中,配置管理中,都會出現新添加的客戶端。
三、單擊配置管理中的客戶端,添加配置(每一個客戶端能夠添加多個配置)。
一、訪問lanproxy下載地址,下載proxy-client-0.1.zip,解壓到喜歡的目錄。
二、進入proxy-client-0.1/conf目錄,修改config.properties爲:
#與在proxy-server配置後臺建立客戶端時填寫的祕鑰保持一致;沒有服務器能夠登陸 https://lanproxy.org/ 建立客戶端獲取祕鑰 client.key=7533f855416741d88732954991668715 ssl.enable=true ssl.jksPath=test.jks ssl.keyStorePassword=123456 #這裏填寫實際的proxy-server地址;沒有服務器默認便可,本身有服務器的更換爲本身的proxy-server(IP)地址 server.host=local.voidking.com #proxy-server ssl默認端口4993,默認普通端口4900 #ssl.enable=true時這裏填寫ssl端口,ssl.enable=false時這裏填寫普通端口 server.port=4993
三、進入proxy-client-0.1/bin目錄,雙擊startup.bat,便可啓動lanproxy客戶端。
若是啓動失敗,通常是由於jdk沒有安裝配置成功,參考《IDEA的經常使用配置》中的安裝jdk,安裝配置jdk後再次啓動便可。
四、訪問地址 http://local.voidking.com:50000/ ,便可看到本地訪問客戶端80端口相同的頁面。
至此,代理成功!
假設,咱們本地的4000端口開啓了node服務。那麼,怎麼把這個服務優雅地提供給整個互聯網?
一、服務端添加配置
二、啓動本地node服務
三、已經啓動lanproxy客戶端,訪問 http://local.voidking.com:50001/
此時,整個互聯網都能訪問到這個node項目,可是,帶着端口號很不友好。那麼,咱們就給這個項目添加一個單獨的域名。
一、添加域名解析node.local
到公網ip。
二、在nginx虛擬主機配置目錄中,添加node.local.voidking.com.conf,內容以下:
server { listen 80; server_name node.local.voidking.com; charset utf-8; location /{ proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1024m; client_body_buffer_size 128k; client_body_temp_path data/client_body_temp; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path data/proxy_temp; proxy_pass http://127.0.0.1:50001; } }
三、重啓nginx./nginx -s reload
四、訪問地址 http://node.local.voidking.com/ ,便可看到本地node服務。
一、經過咱們開放出的80端口,能夠訪問web根目錄下的不少項目,好比在其餘文章中提到過的basic項目和vkphp項目,下文以vkphp項目爲例。
二、當前,vkphp項目首頁是簡單的文字顯示。
三、經過外網訪問的地址爲 http://local.voidking.com:500...
此時,整個互聯網都能訪問到這個vkphp項目,可是,帶着端口號和項目名,感受像是個欺詐網站。那麼,咱們可否給這個項目添加一個單獨的域名呢?固然也是能夠的。
一、添加域名解析vkphp.local
到公網ip。
二、在nginx虛擬主機配置目錄中,添加vkphp.local.voidking.com.conf,內容以下:
server { listen 80; server_name vkphp.local.voidking.com; charset utf-8; location /{ proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1024m; client_body_buffer_size 128k; client_body_temp_path data/client_body_temp; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path data/proxy_temp; proxy_pass http://127.0.0.1:50000; } }
三、重啓nginx./nginx -s reload
四、打開本地apache的http-vhosts.conf,添加配置:
<VirtualHost *:80> #laragon magic! DocumentRoot "C:/laragon/www/vkphp/" ServerName vkphp.local.voidking.com ServerAlias vkphp.local.voidking.com </VirtualHost>
五、重啓本地apache
六、訪問地址 http://vkphp.local.voidking.com/ ,便可看到本地vkphp項目。
有趣的是,訪問時該地址會自動在後面加上vkphp
,成爲 http://vkphp.local.voidking.c...
由上配置咱們發現,nginx的反向代理很是好用。稍微調整,即可以適應大多數項目,實在是美化url的神器,哇咔咔。